CrossOver基于wine,因此许多wine的配置也能在CrossOver上实施。
CrossOver在这里是android app的形式,它的数据在android容器里的/data/data/com.codeweavers.cxoffice/files/这个目录里面,在外部系统里访问该目录要在前面加上/opt/google/containers/android/rootfs/android-data/。看一下这里面的内容
每一个wine容器(环境)用WINEPREFIX来区分,在这里就是数据目录下面的prefixes文件夹,可以知道每次新建一个wine环境这里会多一个子目录,每个子目录下的内容相近
这里我们选择QQMusic的容器来测试
首先看一下该目录:
这里主要注意两个东西:
这里一共有三个字体文件夹。其中两个在./drive_c/fonts/里面
一个是system,可见它指向了Android子系统里面的字体文件夹,这个文件夹是只读的
另一个是wine带的文件夹,看到它也是个软链接指向了数据目录里的share/wine/fonts目录,这个应该是wine带的字体,所有容器公用的
第三个就是./drive_c/windows/Fonts/,这个其实就是Windows的系统字体目录,每个容器独立的。查看可以知道这个目录其实是空空如也,想必是版权原因。
注意.reg后缀的文件,这些其实是文本格式存储的Windows注册表数据,不同的文件名对应不同的注册表树,这个问题里我们要通过修改注册表来解决。
wine里和字体相关的注册表项主要有
wine相关配置:
Windows相关配置:
修正一共两步,建议在CrossOver菜单里停止所有wine进程后再操作
这里我们选择增加经典的文泉驿微黑字体wqy-microhei.ttc,可以从网上下载一个,放到./drive_c/windows/Fonts/里面,wine会自动识别这个字体,
建议添加字体后重启子系统然后确保正确读取,否则可能导致下一步修改注册表项进行的修改不生效,原因未知。
如何确保字体被wine读取呢?
在菜单中选择Command Shell,在出现的命令行中输入regedit启动Windows注册表编辑器,在HKEY_CURRENT_USER\Software\Wine\Fonts\Cache里面应该能找到一个叫WenQuanYi Micro Hei的子目录,说明文泉驿微黑字体被wine正确读取。
这里我们可以选择regedit里面编辑注册表,不过要修改的表项太多了,应该没人这么做。
我们可以通过修改user.reg来达到这个目的,效果是一样的,首先墙裂建议停止所有wine进程后再操作!
我们要修改的表项是HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements,指示某种字体缺失后的候选字体,我们要给所有常用的中文字体添加文泉驿微黑作为候选字体。
修改前的注册表:
在我们修改之前,会有很多表项含的值为Noto Sans CJK SC Regular,这也是一种中文字体,我们需要将这些项的值替换成Noto Sans CJK SC Regular和WenQuanYi Micro Hei两个值,并增加一些字体如宋体、黑体等的候选。
"DFKai-SB"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "FangSong"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "Hiragino Sans GB"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "KaiTi"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "Microsoft JhengHei"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "Microsoft Sans Serif"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "Microsoft YaHei"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "MingLiU"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "NSimSun"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "PMingLiU"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "SimHei"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "SimKai"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "SimSun"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x4eff\x5b8b"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x4eff\x5b8b_GB2312"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x5b8b\x4f53"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x5fae\x8f6f\x96c5\x9ed1"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x601d\x6e90\x9ed1\x4f53 Regular"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x65b0\x5b8b\x4f53"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x65b0\x7d30\x660e\x9ad4"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x6977\x4f53"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x6977\x4f53_GB2312"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x96b6\x4e66"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0" "\x9ed1\x4f53"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"
保存后从regedit里面可以看到,新增了一些常见的字体,并新增了文泉驿微黑作为候选字体。
原先歌词中的中文部分显示为方块,现已显示正常。
另外网上说的另一种似乎比较可靠的办法是直接将原版Windows的Fonts文件夹里的字体全部放到./drive_c/windows/Fonts/,但是我没有尝试过,可以尝试一下。
相关阅读:
uc电脑园提供的技术方案或与您产品的实际情况有所差异,您需在完整阅读方案并知晓其提示风险的情况下谨慎操作,避免造成任何损失。
浏览次数 253
浏览次数 637
浏览次数 591
浏览次数 3541
浏览次数 1363
未知的网友