我目前正在开发一个应用程序,在linux下使用wine运行,需要使用CJK字体显示(仅显示,无输入)文本。令我感到有趣的是Microsoft字体以某种方式相互链接的方式,例如: 如果我使用winetricks只安装Tahoma,并运行它,它显示无法显示的字符框,然后当我安装所需的字体,例如:MingLiu,文本呈现正确,即使我只选择Tahoma作为默认字体
我认为的结论是,当一个人尝试渲染它无法渲染的角色时,某种方式微软字体相互链接,不知何故,就像这样的逻辑: "尝试使用Tahoma,如果它不能渲染一些字符,使用其他字体(例如:MingLiu)渲染它们,同时仍使用Tahoma"渲染拉丁字符。奇怪的是,当我使用其他不是微软的CJK字体时就不会发生这种情况,例如:Hanazono(http://fonts.jp/hanazono/),尽管Hanazono可以渲染一些需要显示的字符。如果我选择Tahoma或任何其他字体,它将永远无法呈现CJK字符,即使Hanazono存在于当前wineprefix中。
我用来重现这种"现象的步骤":
我真的不知道从哪里开始找到关于此问题的解决方法,无论是某种葡萄酒专长,还是某些字体特定的琐事。最简单的解决方案是嵌入Microsoft字体,但由于它会引发法律问题,我更喜欢使用我能够自由使用的第三方字体。任何信息都会有所帮助,谢谢。
答案 0 :(得分:0)
今天谷歌搜索然后我发现了这篇文章:https://msdn.microsoft.com/en-us/library/ms901083.aspx
似乎"字体链接" (用于定义我查找的特征的术语)通过定义一些注册表值来工作,并且在试验regedit之后,添加名为" DejaVu Sans"的新的MultiString值。在HKLM-Software-Microsoft-WindowsNT-FontLink-SystemLink中,值为:
HanaMinA.ttf, HanaMinA
HanaMinB.ttf, HanaMinB
我可以将DejaVu Sans与Hanazono字体链接起来,以呈现DejaVu Sans无法呈现的CJK字符。
应该注意的是,这个实验只适用于葡萄酒,因为在Windows中,某种程度上字体链接可以自动生成"无需手动定义注册表,这可能会导致错误的方向,相信相同的文本呈现在wine下运行时看起来是相同的。
答案 1 :(得分:0)
如果上述方法无效,请尝试此操作。
wine regedit
导航至:
HKEY_CURRENT_USER\Software\Wine\Fonts
查看您是否有一个名为Replacements
的子项
如果是这样-您可以安全地仅删除该子项。