问题1.生僻字不能在数据库中保存与正常显示 䶮、㛃、𠅤等三字节汉字可以正常保存在数据库中,𫓩、𬱖等四字节汉字无法保存在数据库表中。原因分析:一般来说,正常汉字不会超过3个字节,但是会出现一些生僻字为4个字节(当然,有的emoji表情符号也是4个字节),而MySQL的UTF-8编码只能支持1-3个字节,如果想保存4个字节的字符,则需要把字符集修改为utf8mb4,而且MySQL的版本要高于5.5.3。问题2:数据库修改编码utf8mb4后能正常保存的生僻字,无法从数据库传递到到系统中解决办法:在jdbc连接中添加useUnicode=true; characterEncoding=utf8;问题
1. 中文汉字Unicode编码表序号字符集字数Unicode编码范围1基本汉字209024E00-9FA52基本汉字补充749FA6-9FEF3扩展A65823400-4DB54扩展B4271120000-2A6D65扩展C41492A700-2B7346扩展D2222B740-2B81D7扩展E57622B820-2CEA18扩展F74732CEB0-2EBE09康熙部首2142F00-2FD510部首扩展1152E80-2EF311兼容汉字477F900-FAD912兼容扩展5422F800-2FA1D13PUA(GBK)部件81E815-E86F14部件扩展452E400-E5E815
1. 中文汉字Unicode编码表序号字符集字数Unicode编码范围1基本汉字209024E00-9FA52基本汉字补充749FA6-9FEF3扩展A65823400-4DB54扩展B4271120000-2A6D65扩展C41492A700-2B7346扩展D2222B740-2B81D7扩展E57622B820-2CEA18扩展F74732CEB0-2EBE09康熙部首2142F00-2FD510部首扩展1152E80-2EF311兼容汉字477F900-FAD912兼容扩展5422F800-2FA1D13PUA(GBK)部件81E815-E86F14部件扩展452E400-E5E815
在python印章生成里使用了“华文新魏”字体来生成印章.实际运行中发现,有些冷僻字会显示为空白。例如“皛暐”这个名字,实际生成的印章,就是下图这样,呈现空白。问题很容易定位,肯定是字体库对生僻字不支持导致的。那么我们怎么用程序来判断当前文字是否在字体库中呢?这就要用到python操作字体的工具库fontTools了。例如,我们想看汉字“皛”是否存在“华文新魏”字体库中,就可以用以下代码来实现:fromfontTools.ttLibimportTTFontfont=TTFont("C:/Windows/Fonts/STXINWEI.TTF")unicode_dict=font['cmap'].
在python印章生成里使用了“华文新魏”字体来生成印章.实际运行中发现,有些冷僻字会显示为空白。例如“皛暐”这个名字,实际生成的印章,就是下图这样,呈现空白。问题很容易定位,肯定是字体库对生僻字不支持导致的。那么我们怎么用程序来判断当前文字是否在字体库中呢?这就要用到python操作字体的工具库fontTools了。例如,我们想看汉字“皛”是否存在“华文新魏”字体库中,就可以用以下代码来实现:fromfontTools.ttLibimportTTFontfont=TTFont("C:/Windows/Fonts/STXINWEI.TTF")unicode_dict=font['cmap'].