装了纯净英文XP系统,启动程序,所有中文全是方框,网页上市乱码。于是,我把宋体-新宋体 字体文件安装了,再启动程序,网页已经正常显示,部分文字也正常显示,但还有很多仍然是方框。然后,安装了语言包,启动程序,显示文字就正常了。
有高人能够解释一下,为什么非得安装中文语言包,只有字体文件为什么不行?

解决方案 »

  1.   

    英文系统默认安装的时候,是不安装东亚语言的,也就是现在你的系统里没有codepage 936。
    你打开 control panel,打开 date,time,laguage,and regional option,再打开regional and language options,切换到laguages页面把下面的 insatall files for Asian languages勾打上,会提示你放入安装光盘。安装下就行了。也可以在安装的时候就把这里选上,就不会出现你说的问题。
      

  2.   

    哦,看错。还以为你没到最后也没安装语言包。不过你的问题我也可以回答下。
    搜索:unicode、ansi、codepage,慢慢看然后你就知道为什么了,要说清楚要打好多字啊。
      

  3.   


    unicode、ansi这些我都看过,codepage就是指不同语言的字符集吧,问题还是没有解决。
      

  4.   


    我装的系统没有安装东亚语言包,应该没有相应的codepage吧,所以任何中文都无法显示,但是当我将宋体 文件安装之后,部分中文能够显示了,这是什么情况,为什么只有一些能够正常显示?
      

  5.   

    经过测试研究,发现英文系统下本来是有936的代码页的,也就是说字符集并不存在问题。
    程序使用的字体是Arial,AnsiChar,系统没有安装语言包,程序中显示方框。可能的原因有以下两种:
    1.无法动态识别这是中文,故不能切换到936进行解码,使用英文系统下的1252解码不出,故显示方框。
    2.识别出是中文,切换到936代码页,能够解码,但是系统没有为936代码页注册默认的字体,故仍然没法显示。
    个人认为第二种情况比较可能。
    另外测试了一下,notepad.exe,Ansi保存的中文,在英文下变成乱码(不是方框),并且这与语言包无关,这个是因为对应字符集不对,解码错误。如果有语言包,并保存为Unicode就没有问题,没有语言包显示方框,这个就应该与前面分析的两个原因类似,映射到936,没有默认的字体。或者是Unicode中文部分字符没有默认的字体显示。
    以上是个人分析,不知道对不对,还请大家指教。