作者Peruheru (还在想)
看板Programming
标题[问题] Unicode文字显示
时间Tue Oct 28 14:34:03 2014
其实我不知道这算不算是跟程式有关的问题
我在做的事情是要把Big5码转换成Unicode
那因为里面有一大堆外字,也就是Big5没有的字
所以转换时我参考网路上用iconv逐字,能转的就转,不能转的就去查表
我有一份三千多字的对应表可供查询
这样转很多字都可以转换成功
可是有些字转完出来还是方框
像是Unicode编码为 0x2F9D0 跟谕长得很像,读音一样都是 ㄩˋ 的字
我如果直接把这个方框拿去Google,就会找到 谕 的相关搜寻结果
如果贴到Skype上,就会被自动转换成 谕
所以我想这其实是同一个字,只是是谕的异体字或错别字
但因为目前要处理的是人名
不能随便把他换成另外一个字
所以终究得寻找能让它显示出来的方法
我的最终目的是要输出PDF档
转换以及输出PDF档都已经成功了
一部分的外字也已经可以呈现在PDF中
就剩下一些字还不能正确显示
我用的是PHP的mpdf
因为它可以轻易的改变字型
所以我在想是不是会有个字型是能够显示这些有编码无字型的字?
这样我只要引入这个字型就解决了
还是我想太多了,终究只能自己造字?
谢谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.134.18.8
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Programming/M.1414478045.A.444.html
※ 编辑: Peruheru (220.134.18.8), 10/28/2014 14:34:55
※ 编辑: Peruheru (220.134.18.8), 10/28/2014 14:36:07
1F:→ azureblaze: 方框是字型的问题 他没有这个字 220.134.245.97 10/28 14:35
2F:→ azureblaze: 免费的可用noto sans cjk 220.134.245.97 10/28 14:36
我後来发现他只收TTF或非postscript的otf orz
试着用各种方式转换,都没成功过...
3F:推 s25g5d4: 全字库 140.117.181.25 10/28 16:56
看不太懂这个要怎麽做
我只缺TTF,但是他好像是安装後挂上造字档的方式
对象伺服器不能随便装东西的说
4F:推 LPH66: U+F900~U+FAFF 这一块字都是来源字码里的重 140.112.30.32 10/28 22:21
5F:→ LPH66: 码字, 所以其实照理说应该要用回正确的字 140.112.30.32 10/28 22:22
6F:→ LPH66: 你的"谕"字(U+FABE)是北韩的编码中的重码字 140.112.30.32 10/28 22:22
7F:→ LPH66: 至於它们正确的字是什麽字可以查询官方表格 140.112.30.32 10/28 22:23
8F:→ LPH66: www.unicode.org/charts/PDF/UF900.pdf 140.112.30.32 10/28 22:23
9F:→ LPH66: 里面有标记≡某码就表示此字该用这个码替代 140.112.30.32 10/28 22:24
10F:→ LPH66: U+FABE 标记的是 ≡8AED 表示 U+8AED 就是 140.112.30.32 10/28 22:24
11F:→ LPH66: 正确的"谕"字 140.112.30.32 10/28 22:24
我打错编码了,真亏LPH66前辈还找出正确的编码
我去查过纸本字典,加上综合网路上查询2F9D0的结果
的确如您所述,基本上2F9D0、FABE、8AED都被当成是同一个字
只有些网站会显示右下角是ㄍ的字型,其他甚至都只显示 谕
老实说我也很想直接转换成8AED就可以显示了orz
※ 编辑: Peruheru (220.134.18.8), 10/29/2014 11:18:50
12F:→ alibuda174: 所以必须显示2F9D0 应该就只能找个含 36.225.80.60 10/29 12:00
13F:→ alibuda174: 2F9D0的字型档 那麽 为什麽转换没成功 36.225.80.60 10/29 12:00
14F:→ alibuda174: 呢? 你用什麽工具来转? 36.225.80.60 10/29 12:01
我用网路上找的很多转档网站
如:
http://everythingfonts.com/otf-to-ttf
http://www.freefontconverter.com/
http://onlinefontconverter.com/
等等
有些是有上传档案大小限制,传不上去(这种字体档案都很大,十几MB起跳)
有些则是上传完,也显示转换完,但根本没有出现下载档案
有个网站我重整後有出现下载一个ttf档,但结果是无法打开的损坏档案
然後用了FontForge这套软体
打开以後选择Generate Fonts,然後选择TTF(有好几个,我选择副档名是ttf的)
然後我关掉了Validate Before Saving选项
结果它产生的是一个损坏的字型档(仅7k大小)
另一个Type light这套软体比较惨,开了字型档就会停止回应没辙
我想转换的是
https://www.google.com/get/noto/#/family/noto-sans-hant
这边下载回来里面的Thin字体,这就是一楼推文中所提到的字体
我有注意到开启这个档案时说需要cidmap档
我也有照指示去下载然後让他读取
不过读出来除了最下面英文区以外
其他的字都看不到实际字体内容
我猜这就是转出只有7K的坏档的原因
但我不知道何解orz
※ 编辑: Peruheru (220.134.18.8), 10/29/2014 13:46:30
15F:推 alibuda174: 我试了 情况跟你一样, 找不到含2F9D0 36.225.80.60 10/29 14:36
16F:→ alibuda174: 的ttf免费字型档, 你们没有买商业版 36.225.80.60 10/29 14:37
17F:→ alibuda174: 的字型档吗? 或许有, 不确定 36.225.80.60 10/29 14:37
18F:→ alibuda174: 或许商业版的ttf字型档有2F9D0 36.225.80.60 10/29 14:38
我找到了!
http://tinyurl.com/mfvyfas
NotoSansCJK-DemiLight 有提供TTF档案
而且它的 02F9D0 是有字型的!!
这样一来就不用为了转档弄得焦头烂额
其实真的已经在考虑要请金蝶帮忙,他们说有办法
但是开价就要25万
可以用免费的方法解决真是太好了...
谢谢各位的意见,对我帮助很大!
※ 编辑: Peruheru (220.134.18.8), 10/29/2014 17:01:56
19F:→ alibuda174: 恭喜,另外不只DemiLight 其他也有ttc 36.225.80.60 10/29 17:19
发现文泉驿的字体支援的字更多,感谢楼上提供搜寻方法
只是他的字体实在不太好看 囧
※ 编辑: Peruheru (220.134.18.8), 10/31/2014 16:14:09
21F:→ alibuda174: 要小心 文泉驿有些字采用大陆写法 36.225.81.29 10/31 18:03
22F:→ alibuda174: 譬如 别、吴、骨、角、过、这、草、放 36.225.81.29 10/31 18:04
23F:→ alibuda174: 文泉驿正黑的2F9D0 右下角不是 ㄍ 36.225.81.29 10/31 19:05
24F:推 Bencrie: NotoSans CJK 要注意一下 locale 220.135.245.63 10/31 19:27
25F:→ Bencrie: 不同 locale 字会长不一样 220.135.245.63 10/31 19:28