Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lionel LASKE
Quel est le type de ta colonne dans SQL Server ? Est-ce un CHAR, VARCHAR ou NCHAR, NVARCHAR ? D'aprés l'erreur que tu décris, il semble que la base de données stocke de l'ANSI alors que tu lui envoi de l'UNICODE. Si c'est le cas: - soit tu passes tes requêtes en ANSI en passant par un Encoding.Convert: - soit tu restes en UNICODE et tu modifies le type de données des colonnes SQL Server.
Lionel.
"yaaak" a écrit dans le message de news:
Bonjour mon config indique la ligne suivante <globalization fileEncoding="utf-8" culture="fr-FR" uiCulture="fr" requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" />
Quel est le type de ta colonne dans SQL Server ?
Est-ce un CHAR, VARCHAR ou NCHAR, NVARCHAR ?
D'aprés l'erreur que tu décris, il semble que la base de données stocke de
l'ANSI alors que tu lui envoi de l'UNICODE.
Si c'est le cas:
- soit tu passes tes requêtes en ANSI en passant par un Encoding.Convert:
- soit tu restes en UNICODE et tu modifies le type de données des colonnes
SQL Server.
Lionel.
"yaaak" <yaaak-sans-spam@caramail.com> a écrit dans le message de news:
OJuEU3RDFHA.960@TK2MSFTNGP09.phx.gbl...
Bonjour
mon config indique la ligne suivante
<globalization fileEncoding="utf-8" culture="fr-FR" uiCulture="fr"
requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" />
Quel est le type de ta colonne dans SQL Server ? Est-ce un CHAR, VARCHAR ou NCHAR, NVARCHAR ? D'aprés l'erreur que tu décris, il semble que la base de données stocke de l'ANSI alors que tu lui envoi de l'UNICODE. Si c'est le cas: - soit tu passes tes requêtes en ANSI en passant par un Encoding.Convert: - soit tu restes en UNICODE et tu modifies le type de données des colonnes SQL Server.
Lionel.
"yaaak" a écrit dans le message de news:
Bonjour mon config indique la ligne suivante <globalization fileEncoding="utf-8" culture="fr-FR" uiCulture="fr" requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" />
En fait ta configuration indique que tes fichiers sont en UTF-8, alors que les échanges avec le navigateur (requet et réponse) se fait en iso-8859-1. Ce qui explique que les données soit stockés dans ta base en UTF-8. Ce n'est pas vraiment un problème parce que l'internaute doit tout voir correctement, non ? Si tu veux que les données soit stocker en iso-8859-1, plusieurs solutions: 1) Passe fileEncoding en iso-8859-1, mais il faudra convertir tout tes fichiers ASPX (c'est lourd). 2) Passe tout en UTF-8 dans ton config, et utilise des NCHAR ou NVARCHAR dans ta base de donnée. Comme ça tu pourra utiliser tout les caractères unicode et ajouter du japonais par exemple... 3) Convertie tes chaines avant utilisation. Il faut utiliser quelque chose comme Encoding iso88591 = new Encoding(28591); Encoding unicode = Encoding.Unicode; byte[] unicodeBytes = unicode.GetBytes(unicodeString); byte[] isoBytes = Encoding.Convert(unicode, ascii, unicodeBytes); char[] isoChars = new char[iso88591.GetCharCount(isoBytes, 0, isoBytes.Length)]; iso88591.GetChars(isoBytes, 0, isoBytes.Length, isoChars , 0); string isoString = new string(isoChars ); Mais je ne l'ai pas testé et c'est quand même bien lourd.
En fait ta configuration indique que tes fichiers sont en UTF-8, alors que
les échanges avec le navigateur (requet et réponse) se fait en iso-8859-1.
Ce qui explique que les données soit stockés dans ta base en UTF-8. Ce n'est
pas vraiment un problème parce que l'internaute doit tout voir correctement,
non ?
Si tu veux que les données soit stocker en iso-8859-1, plusieurs solutions:
1) Passe fileEncoding en iso-8859-1, mais il faudra convertir tout tes
fichiers ASPX (c'est lourd).
2) Passe tout en UTF-8 dans ton config, et utilise des NCHAR ou NVARCHAR
dans ta base de donnée. Comme ça tu pourra utiliser tout les caractères
unicode et ajouter du japonais par exemple...
3) Convertie tes chaines avant utilisation. Il faut utiliser quelque chose
comme
Encoding iso88591 = new Encoding(28591);
Encoding unicode = Encoding.Unicode;
byte[] unicodeBytes = unicode.GetBytes(unicodeString);
byte[] isoBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
char[] isoChars = new char[iso88591.GetCharCount(isoBytes, 0,
isoBytes.Length)];
iso88591.GetChars(isoBytes, 0, isoBytes.Length, isoChars , 0);
string isoString = new string(isoChars );
Mais je ne l'ai pas testé et c'est quand même bien lourd.
En fait ta configuration indique que tes fichiers sont en UTF-8, alors que les échanges avec le navigateur (requet et réponse) se fait en iso-8859-1. Ce qui explique que les données soit stockés dans ta base en UTF-8. Ce n'est pas vraiment un problème parce que l'internaute doit tout voir correctement, non ? Si tu veux que les données soit stocker en iso-8859-1, plusieurs solutions: 1) Passe fileEncoding en iso-8859-1, mais il faudra convertir tout tes fichiers ASPX (c'est lourd). 2) Passe tout en UTF-8 dans ton config, et utilise des NCHAR ou NVARCHAR dans ta base de donnée. Comme ça tu pourra utiliser tout les caractères unicode et ajouter du japonais par exemple... 3) Convertie tes chaines avant utilisation. Il faut utiliser quelque chose comme Encoding iso88591 = new Encoding(28591); Encoding unicode = Encoding.Unicode; byte[] unicodeBytes = unicode.GetBytes(unicodeString); byte[] isoBytes = Encoding.Convert(unicode, ascii, unicodeBytes); char[] isoChars = new char[iso88591.GetCharCount(isoBytes, 0, isoBytes.Length)]; iso88591.GetChars(isoBytes, 0, isoBytes.Length, isoChars , 0); string isoString = new string(isoChars ); Mais je ne l'ai pas testé et c'est quand même bien lourd.