Windows Vista英文操作系统下安装了ArcGIS9.3,结果在Shape文件的属性表中保存的中文信息后再打开全没了,标注也无法显示,全变成了一条线。开 始以为是显示字体的问题,但改成宋体之后还是没用。在网上搜了一下找到了解决办法(可用于ArcGIS 8.3 ~ 9.3 各个版本):
中 文(包括日、韩、阿拉伯等等语言的字符)不能保存到常规的Shape文件、coverage和SDE,但可保存到个人地理数据库中 (personalgeodatabase)或者兼容Unicode的Shape文件中。就是说,与Shape文件(确切地说是shape文件所关联的 dbf文件)保存选择的编码有关。ArcGIS默认通过读取系统的代码页(CodePage)来确定文件编码的(或者是根据操作系统语言来判断的?)。要 保存成Unicode(UTF-8)编码,需要做一些修改。方法如下:
打开注册表,定位到 HKEY_Current_User\Software\ESRI\,添加 Common 项,在Common项下面新建 CodePage项。然后在CodePage项中(注册表右侧)添加一个字符串(REG_SZ),名称: dbfDefault,健值:oem(或者UTF-8),如下图。修改完注册表之后,必须新建一个Shape文件或将已有的另存为(Export Data)新的Shape文件,才能让前面的修改生效。
dbfDefault 可能的值(大小写无关):
OEM 代码页:
OEM, 437, 708, 720, 737, 775, 850, 852, 855, 857, 860, 861, 862, 863, 864, 865, 866, 869, 932, 936, 950
ANSI 代码页:
ANSI, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, Big5, SJIS
ISO 代码页:
ISO, 88591, 88592, 88593, 88594, 88595, 88596, 88597, 88598, 88599, 885910, 885913, 885915, EUC
Unicode:
UTF-8
注意:只有ArcGIS Desktop能识别和打开保存为UTF-8编码的Shape文件。
在英文操作系统中有时候要设置Non-Unicode语言为中文才能显示某些软件的中文界面,不知道修改这个之后能不能使ArcGIS保存包含中文属性数据的Shape文件,有兴趣的可以试一试。
参考资料:
http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=26128
http://support.esri.com/index.cfm?fa=knowledgebase.techArticles.articleShow&d=21106
arcgis engine 编码 乱码