zoukankan      html  css  js  c++  java
  • 100% 解决wine中文乱码问题

    一、确认语言区域设置没有问题

    如果安装的系统LANG不为zh-CN,那么wine运行程序的默认语种也不会是中文,这可能导致一部分乱码。
    解决这个问题,用

        env LANG=zh_CN.UTF-8 wine example.exe

    运行程序
    二、确认中文字体安装无误

    区域设置没有问题了,但是有时对于特定字体的调用仍然会导致乱码,这时就需要对字体进行手动配置,下面提出几种平行的解决方法
    1、如果不考虑开源与否以及授权问题的话,最简单的解决方式是去windows下的Windowsfonts目录下拷贝simsun.ttc或simsun.ttf到WINEPREFIX(如果你不知道这是什么,默认去找~/.wine这个目录)的/drive_c/windows/Fonts目录下。wine(1.8.2)可以直接识别该目录下面的字体而无需手动配置。注意这种方式的前提是之前没有对wine的字体进行配置,没有手动进行一些override。
    2、有些人可能会喜欢直接在系统范围使用宋体,这种情况只需要在系统范围安装宋体即可,wine会自动识别。
    A、给某个用户安装simsun。把simsum.ttc/simsum.ttf拷贝到Home目录下面的.fonts文件夹(注意要给字体合适的权限,用chmod 755 simsum.ttc授权),再cd到该目录执行

        mkfontscale

    即可。
    B、给系统安装simsun。

        sudo mkdir /usr/share/fonts/winfonts
        sudo cp simsun.ttc /usr/share/fonts/winfonts
        sudo fc-cache -fv

    注意如果直接给用户或系统安装simsun的话,可能会因为默认对simsun的渲染方式的问题导致在非wine的地方宋体显示相当难看。

    3、配置wine regedit,fake字体。这是我在用的方式。下面提出两种方式来实现。
    A、通过winetricks
    执行winetricks,安装wqy字体,然后再选择fakechinese,这样可以强制让所有的中文字体用wqy字体来显示。
    B、手动配置一下regedit(这里不用改[HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionFontLinkSystemLink]的方法)

    REGEDIT4

    [HKEY_CURRENT_USERSoftwareWineFontsReplacements]
    "DFKai-SB"="Droid Sans Fallback"
    "FangSong"="Droid Sans Fallback"
    "KaiTi"="Droid Sans Fallback"
    "Microsoft JhengHei"="Droid Sans Fallback"
    "Microsoft YaHei"="Droid Sans Fallback"
    "MingLiU"="Droid Sans Fallback"
    "NSimSun"="Droid Sans Fallback"
    "PMingLiU"="Droid Sans Fallback"
    "SimHei"="Droid Sans Fallback"
    "SimKai"="Droid Sans Fallback"
    "SimSun"="Droid Sans Fallback"

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14

    把上面的内容写入tmp.reg文件,然后执行

        wine regedit tmp.reg

    其中”Droid Sans Fallback”是debian下的默认中文字体,自己也可以根据regedit下[HKEY_CURRENT_USERSoftwareWineFontsCache]下面有的字体来手动编辑。

    至此,中文乱码的问题应该已经基本解决了。
    三、解决字体显示问题

    REGEDIT4
    [HKEY_CURRENT_USERSoftwareWineX11 Driver]
    "ClientSideAntiAliasWithCore"="Y"
    "ClientSideAntiAliasWithRender"="Y"
    "ClientSideWithRender"="Y"

    [HKEY_CURRENT_USERControl PanelDesktop]
    "FontSmoothing"="2"
    "FontSmoothingType"=dword:00000002
    "FontSmoothingGamma"=dword:00000578
    "FontSmoothingOrientation"=dword:00000001

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11

    把上面的内容写入tmp.reg文件,然后执行

        wine regedit tmp.reg

    注意如果显示的中文字体看起来有些“脏”的话,把”ClientSideWithRender”=”Y”的’Y’改为’N’

    经过这些调整,wine的中文显示效果应该会比较不错了。

  • 相关阅读:
    专业的GIS(电子地图、地理信息系统)在房地产行业的初步应用?
    Weka初步
    ViewPager用法
    相关分析和回归分析
    配置路线图RouteMap注意事项
    keyset与entryset
    Windows 应用程序结构
    Linux crontab 命令格式与具体样例
    java环境变量配置
    为什么你总成为不了架构师?
  • 原文地址:https://www.cnblogs.com/chk141/p/12220299.html
Copyright © 2011-2022 走看看