中文软件运行在英文系统下,程序支持unicode,但是仍出现乱码。
解决办法: 1.控制面板 ——> 区域和语言选项——>语言——> 附加的语言支持 ——> 将“为东亚语言安装文件” 选中,然后系统自动安装语言包,再次运行程序,显示正常。另:泰国、越南等需要将“复制文字和从右到左的语言安装文件(包括泰文)”选中。
2.程序内部设置区域 使用SetThreadLocale函数设置运行区域: 【delphi】SetThreadLocale($0804);
在工程的开始处,添加以下代码:
//$0804是中文,$0409是英语 - 美国, $042A是越南,其他见附表
if (GetThreadLocale<>$0804) then //取得当前线程的地方ID begin SetThreadLocale($0804); end;
注:SetThreadLocale与GetThreadLocale是相对应使用的,有朋友在d2007中测试过,SetThreadLocale修改的是control panel 中的区域设置既第一项选项卡中的设置,而非第三项选项卡的设置(第一项选项卡的设置影响的是日期格式,而第三项选项卡的设置影响的才是中英文环境),SetThreadLocale并不能更改系统的语言环境,设置第三选项中语言应用SetLocaleInfo 函数。
3.非程序,如Flash 解决办法是在英语操作系统里面,安装英文版本的Flash制作工具,如Flash MX 在这个环境里面重新生成之前在中文环境里的flash。
区域设置 ID (LCID) 表
区域设置描述 | 简写 | 十六进制值 | 十进制值 |
南非荷兰语 |
af |
0x0436 |
1078 |
阿尔巴尼亚语 |
sq |
0x041C |
1052 |
阿拉伯语 - 阿拉伯联合酋长国 |
ar-ae |
0x3801 |
14337 |
阿拉伯语 - 巴林 |
ar-bh |
0x3C01 |
15361 |
阿拉伯语 - 阿尔及利亚 |
ar-dz |
0x1401 |
5121 |
阿拉伯语 - 埃及 |
ar-eg |
0x0C01 |
3073 |
阿拉伯语 - 伊拉克 |
ar-iq |
0x0801 |
2049 |
阿拉伯语 - 约旦 |
ar-jo |
0x2C01 |
11265 |
阿拉伯语 - 科威特 |
ar-kw |
0x3401 |
13313 |
阿拉伯语 - 黎巴嫩 |
ar-lb |
0x3001 |
12289 |
阿拉伯语 - 利比亚 |
ar-ly |
0x1001 |
4097 |
阿拉伯语 - 摩洛哥 |
ar-ma |
0x1801 |
6145 |
阿拉伯语 - 阿曼 |
ar-om |
0x2001 |
8193 |
阿拉伯语 - 卡塔尔 |
ar-qa |
0x4001 |
16385 |
阿拉伯语 - 沙特阿拉伯 |
ar-sa |
0x0401 |
1025 |
阿拉伯语 - 叙利亚 |
ar-sy |
0x2801 |
10241 |
阿拉伯语 - 突尼斯 |
ar-tn |
0x1C01 |
7169 |
阿拉伯语 - 也门 |
ar-ye |
0x2401 |
9217 |
巴斯克语 |
eu |
0x042D |
1069 |
白俄罗斯语 |
be |
0x0423 |
1059 |
保加利亚语 |
bg |
0x0402 |
1026 |
加泰罗尼亚语 |
ca |
0x0403 |
1027 |
中文 - 中华人民共和国 |
zh-cn |
0x0804 |
2052 |
中文 - 中华人民共和国香港特别行政区 |
zh-hk |
0x0C04 |
3076 |
中文 - 新加坡 |
zh-sg |
0x1004 |
4100 |
中文 - 台湾地区 |
zh-tw |
0x0404 |
1028 |
克罗地亚语 |
hr |
0x041A |
1050 |
捷克语 |
cs |
0x0405 |
1029 |
丹麦语 |
da |
0x0406 |
1030 |
荷兰语 |
nl |
0x0413 |
1043 |
荷兰语 - 比利时 |
nl-be |
0x0813 |
2067 |
英语 - 澳大利亚 |
en-au |
0x0C09 |
3081 |
英语 - 伯利兹 |
en-bz |
0x2809 |
10249 |
英语 - 加拿大 |
en-ca |
0x1009 |
4105 |
英语 - 爱尔兰 |
en-ie |
0x1809 |
6153 |
英语 - 牙买加 |
en-jm |
0x2009 |
8201 |
英语 - 新西兰 |
en-nz |
0x1409 |
5129 |
英语 - 南非 |
en-za |
0x1C09 |
7177 |
英语 - 特立尼达岛 |
en-tt |
0x2C09 |
11273 |
英语 - 英国 |
en-gb |
0x0809 |
2057 |
英语 - 美国 |
en-us |
0x0409 |
1033 |
爱沙尼亚语 |
et |
0x0425 |
1061 |
波斯语 |
fa |
0x0429 |
1065 |
芬兰语 |
fi |
0x040B |
1035 |
法罗语 |
fo |
0x0438 |
1080 |
法语 - 标准 |
fr |
0x040C |
1036 |
法语 - 比利时 |
fr-be |
0x080C |
2060 |
法语 - 加拿大 |
fr-ca |
0x0C0C |
3084 |
法语 - 卢森堡 |
fr-lu |
0x140C |
5132 |
法语 - 瑞士 |
fr-ch |
0x100C |
4108 |
盖尔语 - 苏格兰 |
gd |
0x043C |
1084 |
德语 - 标准 |
de |
0x0407 |
1031 |
德语 - 奥地利 |
de-at |
0x0C07 |
3079 |
德语 - 列支敦士登 |
de-li |
0x1407 |
5127 |
德语 - 卢森堡 |
de-lu |
0x1007 |
4103 |
德语 - 瑞士 |
de-ch |
0x0807 |
2055 |
希腊语 |
el |
0x0408 |
1032 |
Hebrew |
he |
0x040D |
1037 |
印地语 |
hi |
0x0439 |
1081 |
匈牙利语 |
hu |
0x040E |
1038 |
冰岛语 |
is |
0x040F |
1039 |
印度尼西亚语 |
in |
0x0421 |
1057 |
意大利语 - 标准 |
it |
0x0410 |
1040 |
意大利语 - 瑞士 |
it-ch |
0x0810 |
2064 |
日语 |
ja |
0x0411 |
1041 |
朝鲜语 |
ko |
0x0412 |
1042 |
拉脱维亚语 |
lv |
0x0426 |
1062 |
立陶宛语 |
lt |
0x0427 |
1063 |
马其顿语 |
mk |
0x042F |
1071 |
马来语 - 马来西亚 |
ms |
0x043E |
1086 |
马耳他语 |
mt |
0x043A |
1082 |
挪威语 - 博克马尔 |
no |
0x0414 |
1044 |
波兰语 |
pl |
0x0415 |
1045 |
葡萄牙语 - 标准 |
pt |
0x0816 |
2070 |
葡萄牙语 - 巴西 |
pt-br |
0x0416 |
1046 |
拉托-罗马语 |
rm |
0x0417 |
1047 |
罗马尼亚语 |
ro |
0x0418 |
1048 |
罗马尼亚语 - 摩尔多瓦 |
ro-mo |
0x0818 |
2072 |
俄语 |
ru |
0x0419 |
1049 |
俄语 - 摩尔多瓦 |
ru-mo |
0x0819 |
2073 |
塞尔维亚语 - 塞瑞利克 |
sr |
0x0C1A |
3098 |
Setsuana |
tn |
0x0432 |
1074 |
斯洛文尼亚语 |
sl |
0x0424 |
1060 |
斯洛伐克语 |
sk |
0x041B |
1051 |
索布语 |
sb |
0x042E |
1070 |
西班牙语 - 标准 |
es |
0x040A |
1034 |
西班牙语 - 阿根廷 |
es-ar |
0x2C0A |
11274 |
西班牙语 - 玻利维亚 |
es-bo |
0x400A |
16394 |
西班牙语 - 智利 |
es-cl |
0x340A |
13322 |
西班牙语 - 哥伦比亚 |
es-co |
0x240A |
9226 |
西班牙语 - 哥斯达黎加 |
es-cr |
0x140A |
5130 |
西班牙语 - 多米尼加共和国 |
es-do |
0x1C0A |
7178 |
西班牙语 - 厄瓜多尔 |
es-ec |
0x300A |
12298 |
西班牙语 - 危地马拉 |
es-gt |
0x100A |
4106 |
西班牙语 - 洪都拉斯 |
es-hn |
0x480A |
18442 |
西班牙语 - 墨西哥 |
es-mx |
0x080A |
2058 |
西班牙语 - 尼加拉瓜 |
es-ni |
0x4C0A |
19466 |
西班牙语 - 巴拿马 |
es-pa |
0x180A |
6154 |
西班牙语 - 秘鲁 |
es-pe |
0x280A |
10250 |
西班牙语 - 波多黎各 |
es-pr |
0x500A |
20490 |
西班牙语 - 巴拉圭 |
es-py |
0x3C0A |
15370 |
西班牙语 - 萨尔瓦多 |
es-sv |
0x440A |
17418 |
西班牙语 - 乌拉圭 |
es-uy |
0x380A |
14346 |
西班牙语 - 委内瑞拉 |
es-ve |
0x200A |
8202 |
苏图语 |
sx |
0x0430 |
1072 |
瑞典语 |
sv |
0x041D |
1053 |
瑞典语 - 芬兰 |
sv-fi |
0x081D |
2077 |
泰语 |
th |
0x041E |
1054 |
土耳其语 |
tr |
0x041F |
1055 |
汤加语 |
ts |
0x0431 |
1073 |
乌克兰语 |
uk |
0x0422 |
1058 |
乌尔都语 - 巴基斯坦 |
ur |
0x0420 |
1056 |
越南语 |
vi |
0x042A |
1066 |
科萨语 |
xh |
0x0434 |
1076 |
意第绪语 |
ji |
0x043D |
1085 |
祖鲁语 |
zu |
0x0435 |
1077 |
|