地图服务中文标注乱码

mxd中使用了字段表达式同时标注两个字段。两个字段内容一个为中文,另一个为英文。所有标注字体采用了宋体。标注内容在mxd中显示正常,但是发布成服务后中文标注显示为方框。
已邀请:

马克玲

赞同来自:

【问题分析】:
字体乱码问题大多和字符编码,字符集有关。如果用英文字体标注中文会引起乱码,字符会显示为方框。
建议:
1、检查标注字体,是否全部采用了中文字体标注。

2、检查数据库中中文存储编码和实际数据库字符编码是否匹配。
【解决办法】:
经过大量排查,最终定位是数据库字符编码问题。数据库中中文实际存储的字符编码为GB2312, 但是数据库字符编码设置成了 UTF8,这会导致中文乱码。将数据库字符编码集修改成 GB2312后问题修复。
总结:正常情况,如果是通过Arcmap录入数据,无论客户端编码集和oracle数据库编码集是否一致,Oracle都会做正确的字符集转换,来确保存储的中文字符正确,这样从Server或其它客户端读取中文字符也会是正确的结果。这个特殊案例是在数据存储时,字符集没有做正确的转换,导致中文字符编码错误,故而引起Server中文标注乱码。

要回复问题请先登录注册