Estoy tratando de mostrar caracteres árabes de la base de datos Sybase usando la aplicación .Net Windows Forms, pero aparecen como basura. Estoy usando ODBC.
Si uso ADO.Net, los caracteres se muestran bien, por lo que el problema solo está en ODBC (y OlEDB, que también probé)
Intenté usar CharSet=UTF8 en la cadena de conexión ODBC pero comencé a recibir el error Invalid character conversion válida. Aquí está mi cadena de conexión:
<add name="SybaseString" connectionString="DSN=myDatabase;UID=sa;PWD=sa123;CharSet=utf8" /> Mientras muestro, no estoy haciendo nada elegante, solo estoy mostrando directamente datos como este reader["ArabicName"].ToString()
No hay problema con la forma en que se almacenan los datos en la base de datos porque cuando se usa ADO.Net funciona bien. ¿Cómo soluciono este problema?
Ok, usar el conjunto de caracteres cp1256 en la cadena de conexión solucionó el problema. Entonces, la cadena de conexión final se vería así:
<add name="SybaseString" connectionString="DSN=myDatabase;UID=sa;PWD=sa123;CharSet=cp1256" /> ¿Cómo me enteré? Primero ejecuté este comando sp_helpsort para averiguar el conjunto de caracteres utilizado por la base de datos. Allí vi que el conjunto de caracteres es cp1256 , así que usé el mismo y ahora funciona bien.