字符映射问题.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");