打印

Linux系统中查看字体的几个问题

Linux系统中查看字体的几个问题

好不容易找到这个论坛,发现这儿人气不足,但是帖子的质量还是不错。
于是想来碰碰运气,咨询咨询。具体请看转贴的第二个:
http://www.linuxsir.org/bbs/thread382661.html#2

TOP

??? 或者空白一般是编码问题。
字体名字应该是个标签而已,这种标签肯定存在编码问题的。
不是字体数据本体,又没有严格的编码规定,这种状况编码问题很常见。

TOP

又是编码问题。
目前,对Linux的编码认识,停留在emacs的编码体系上。
linux系统上的Locale决定编码,保证编码正确之后可以正常显示。
但是,错误编码下保存的文件(例如文件内容编码错误、文件名编码错误等等),
如何才能恢复呢?像iconmv,enca之类的好像不能完全解决问题,例如
复制内容到剪贴板
代码:
$ ls
³ÁĬÊǽð.lrc  ×·ÃÎÈË.mp3      Ð¡Àî·Éµ¶.lrc    ÈÃÒ»ÇÐËæ·ç.mp3  Íòˮǧɽ×ݺá.lrc
³ÁĬÊǽð.mp3  Á©ÍüÑÌË®Àï.lrc  Ð¡Àî·Éµ¶.mp3    °ËÏɹýº£.lrc    Íòˮǧɽ×ݺá.mp3
°¢ÀÉÁµÇú.lrc  Á©ÍüÑÌË®Àï.mp3  °ë½ï°ËÁ½.lrc    °ËÏɹýº£.mp3    恨绵绵.lrc
°¢ÀÉÁµÇú.mp3  Çé°®¼¸¶à°§.lrc  °ë½ï°ËÁ½.mp3    Ìì²Å°×³ÕÃÎ.lrc  恨绵绵.mp3
×·ÃÎÈË.lrc    Çé°®¼¸¶à°§.mp3  ÈÃÒ»ÇÐËæ·ç.lrc  Ìì²Å°×³ÕÃÎ.mp3
按网上的方法,只能批量修改为1、2、3之类的文件名。
但如果利用播放器的话,例如Emacs+EMMS,
会发现上面这些乱码的mp3在播放时仍然能够显示正常的文件名。
这是不是意味着还是有可能将乱码文件名转化为正常的文件名?

回到字体问题上,似乎问题更加复杂。

首先,作为字体的文件名会出现乱码,这个倒是问题不大,最多把它们批量的修改为数字名。
当然这不是最佳的解决方法。

其次,字体文件的内部名字出现乱码,这就导致fc-list显示乱码。
此时,利用fontforge修改字体名的话,字体文件是不是就算被改动了呢?
总感觉这也是不完美的解决方案。能不能不修改文件本身,
而让fc-list、fontforge之类的软件指定编码显示字体名,就像emacs显示编码一样?

最后,不知道字体文件的内部程序有没有编码?这个问题表现得我很无知,
因为字体就是一些函数曲线,给我的直接感觉字体内部程序应当没有编码问题。

TOP

字体有编码。这个编码是用来寻找对应文字曲线用的,编码对应文字。不过这种字体文件内部规定有统一编码的。但他的 tag ,也就是标注是没有的。就像 MP3 ,他是一个音频压缩算法,你看他的作者歌曲名专辑名算不算 MP3 ?这种文字就是标签,不是 MP3 歌曲的本体,但又属于 MP3 里面的内容。
我说的编码问题,同样如此,字体文件的描述字型的函数是固定格式的,但他的说明标注都是附加数据。

文件名的乱码原因很多。比如你的环境根本就不支持中文显示。比如使用了错误的编码存储。比如编码转换存在错误。比如程序忘了进行编码转换。

现在的 Linux 内部统一都是 utf8 处理,输入和输出时都会作一个 utf8 和 local 的相互转换。
文件系统也有编码问题,不同的文件系统都有不同的编码规定。但驱动也需要进行转换。把他们转换成统一的编码格式。

这些转换过程都不是自动识别的,都需要指定编码。所以出现编码错误很正常。
任何一个环节错误或者忘记转换,都会有这种问题。比如挂载分区时错误的制定了编码。软件内部处理不是 UTF8 ,软件输入输出时忘了进行编码转换,设置了错误的 local 。
这都是乱码的根源。

只要有字符串出现的地方,就有编码问题。
emacs 的问题,我建议你看看他的源代码,看看他是怎么处理编码问题的。
字符界面程序我记得都不考虑编码问题。图形界面程序基本都考虑编码问题。

TOP

兄台,如果我想处理字体中标签的乱码,该如何施为呢?
希望不要修改字体文件本身,只做相关的编码转化(我可能有点完美主义的臆想)。

另外,字体方面的知识,从字体文件的内部结构到制作流程,有没有相关的资料?
最好是深入浅出型的文档。

TOP

不休改文件不可能。除非你修改系统的标签读取功能,但这会导致正常的变的不正常。

TOP

字体方面的东西,你可以去看看文泉驿,资料应该够全。

TOP