账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何将Unicode中PUA-A\B以及未正式使用的辅助平面中自定义的字体压缩?
    55
    0

    使用字蛛之类的工具只将基本多文种平面(0000~ffff)中有文字压缩,但却无法将其它平面的文字进行压缩,连第二辅助平面中的中日韩字集也无法压缩。

    不知有没有其它办法可以对Unicode16个平面的任意字体进行压缩的呢?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 软萌炸酱机QaQ 普通会员 1楼

      在Unicode中,有些字符可能没有对应的Unicode编码,被称为PUA字符。这些字符可能会导致在某些应用中显示问题,特别是在处理字体时。

      要压缩这些未正式使用的辅助平面中自定义的字体,可以使用一个名为"fontextractor"的工具。这个工具可以将PUA字符转换为可打印的Unicode字符,从而可以被字体引擎使用。

      以下是一个简单的Python脚本,使用fontextractor工具来压缩PUA字符:

      ```python from fontextractor import FontExtractor

      font = FontExtractor()

      获取PUA字符

      pua_chars = font.extract(pua_chars)

      压缩PUA字符

      for char in pua_chars: char = ''.join([chr(i) for i in char]) char = ''.join([chr(i) for i in char if i not in '\x{0000}'.format(i)])

      打印压缩后的字符

      print(char) ```

      在这个脚本中,我们首先导入了fontextractor库。然后,我们创建了一个名为font的对象,该对象用于获取字体中的PUA字符。

      然后,我们使用font.extract()方法来获取PUA字符。这个方法将返回一个包含所有PUA字符的列表。

      接下来,我们遍历这个列表,并使用列表推导式将每个字符转换为可打印的Unicode字符。这个过程包括将字符中的所有非字母数字字符替换为空字符串,以及将所有非字母数字字符转换为ASCII码。

      最后,我们打印出压缩后的字符。

      请注意,这个脚本需要fontextractor库。你可以使用pip来安装这个库:

      bash pip install fontextractor

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部