字符映射问题.NET-Informix
Character mapping issue .NET-Informix
当我从服务器的数据库中检索数据时,我遇到了一个非常奇怪的问题,但被误读了。
原始消息是:
Avería resuelta Le comunicamos que la avería registrada en la dirección #DIRECCION# ha sido cerrada #FECHAHORAFIN#.
我们在服务器上收到的消息是这样的:
Aver¡a resuelta Le comunicamos que la aver¡a registrada en la direcci¢n #DIRECCION# ha sido cerrada #FECHAHORAFIN#.
我们在消息中有特殊的 latin-1 字符,我们在连接字符串中指定字符集如下 db_locale=es_es.cp1252; client_locale=es_es.cp1252
奇怪的是,当我从 mi 本地计算机执行(控制台)应用程序时,它执行得很好,但是当我从服务器执行它时,它无法正确识别字符。
服务器是 Windows Server 2003,我的本地机器是 Windows 10.
提前致谢。
编辑:此查询 SELECT tabname, site FROM systables WHERE tabid IN ( 90, 91 );
输出的值如下:
tabname site
GL_COLLATE es_ES.1252
GL_CTYPE es_ES.1252
解决方案是使用当前区域性设置对应用程序进行本地化
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES");
当我从服务器的数据库中检索数据时,我遇到了一个非常奇怪的问题,但被误读了。
原始消息是:
Avería resuelta Le comunicamos que la avería registrada en la dirección #DIRECCION# ha sido cerrada #FECHAHORAFIN#.
我们在服务器上收到的消息是这样的:
Aver¡a resuelta Le comunicamos que la aver¡a registrada en la direcci¢n #DIRECCION# ha sido cerrada #FECHAHORAFIN#.
我们在消息中有特殊的 latin-1 字符,我们在连接字符串中指定字符集如下 db_locale=es_es.cp1252; client_locale=es_es.cp1252
奇怪的是,当我从 mi 本地计算机执行(控制台)应用程序时,它执行得很好,但是当我从服务器执行它时,它无法正确识别字符。
服务器是 Windows Server 2003,我的本地机器是 Windows 10.
提前致谢。
编辑:此查询 SELECT tabname, site FROM systables WHERE tabid IN ( 90, 91 );
输出的值如下:
tabname site
GL_COLLATE es_ES.1252
GL_CTYPE es_ES.1252
解决方案是使用当前区域性设置对应用程序进行本地化
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("es-ES");