Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SQL serveur 2000 - Enregistrement de caractères Cyrillic

4 réponses
Avatar
Beedjees
Bonjour,

Je dispose d'un site en ASP intérogeant une base SQL serveur 2000
Ce site est actuellement en français et je souhaiterais le traduire en
Russe...

Dans ma base, j'ai un champ "label_ru" qui contiendra des label Russe.
Lorsque je "copie-colle" un texte russe directement dans le champ via
Entreprise manager, le texte est bien affiché dans mon champ et lorsque je le
récupère en ASP, il s'affiche correctement :
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
session.CodePage = 65001
...
%>
...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
response.write("label_ru")
%>
...

Mais lorsque je souhaite enregistrer un label russe via un formulaire ou via
l'analyseur de requète, mon champ n'affiche que des ??????? ????
UPDATE maTable SET label_ru = 'Сделайте' WHERE id=1
SELECT label_ru FROM matTable WHERE id=1
renvoi => ????? ?????

Y aurait il une astuce ? Je ne trouve pas beaucoup d'aide sur internet...
Merci

4 réponses

Avatar
Philippe TROTIN [MS]
Ce message est composé et au format MIME.

------=_NextPart_000_000D_01C80438.11E0BD40
Content-Type: text/plain;
charset="Utf-8"
Content-Transfer-Encoding: quoted-printable

Bonjour,

Quelques pistes :

1. Mettez un profiler pour voir ce qui se passe au niveau de l'ordre SQL passé à SQL Server

2. Peut être :
UPDATE maTable SET label_ru = N'Сделайте' WHERE id=1
SELECT label_ru FROM matTable WHERE id=1



Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"Beedjees" a écrit dans le message de groupe de discussion :
Bonjour,

Je dispose d'un site en ASP intérogeant une base SQL serveur 2000
Ce site est actuellement en français et je souhaiterais le traduire en
Russe...

Dans ma base, j'ai un champ "label_ru" qui contiendra des label Russe.
Lorsque je "copie-colle" un texte russe directement dans le champ via
Entreprise manager, le texte est bien affiché dans mon champ et lorsque je le
récupère en ASP, il s'affiche correctement :
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
session.CodePage = 65001
...
%>
...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
response.write("label_ru")
%>
...

Mais lorsque je souhaite enregistrer un label russe via un formulaire ou via
l'analyseur de requète, mon champ n'affiche que des ??????? ????
UPDATE maTable SET label_ru = 'Сделайте' WHERE id=1
SELECT label_ru FROM matTable WHERE id=1
renvoi => ????? ?????

Y aurait il une astuce ? Je ne trouve pas beaucoup d'aide sur internet...
Merci


------=_NextPart_000_000D_01C80438.11E0BD40
Content-Type: text/html;
charset="Utf-8"
Content-Transfer-Encoding: quoted-printable

ÿþ<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Conten t-Type content="text/htm l; charset=unicode">
<META content="MSHTML 6.00.6000.16527" name=GENERATOR></ HEAD>
<BODY id=MailContainerB ody
style="PADDING-RI GHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 10pt; COLOR: #000000; PADDING-TOP: 15px; FONT-FAMILY: Arial"
bgColor=#ffffff leftMargin=0 topMargin=0 CanvasTabStop="tr ue"
name="Compose message area" acc_role="text">
<DIV>Bonjour,<BR>< /DIV>
<DIV>Quelques pistes :</DIV>
<DIV>&nbsp;</DIV>
<DIV>1. Mettez un profiler pour voir ce qui se passe au niveau de l'ordre SQL
passé à SQL Server</DIV>
<DIV>&nbsp;</DIV>
<DIV>2. Peut être :</DIV>
<DIV>UPDATE maTable SET label_ru = <STRONG><FONT
color=#ff0000>N</ FONT></STRONG>'!45; 09B5' WHERE id=1<BR>SELECT label_ru FROM
matTable WHERE id=1<BR></DIV>
<DIV><BR><BR>Cordi alement<BR>________ __________________ _____<BR><BR>&nbsp; &nbsp;&nbsp;
Philippe TROTIN<BR>&nbsp;&n bsp;&nbsp; Microsoft Services
France<BR>________ ___________________ ____<BR><BR>"Beedj ees"
&lt;Beedjees@discu ssions.microsoft.co m&gt; a écrit dans le message de groupe de
discussion : B40E47C0-BCDF-4EF3 -8679-18703F05887E@ microsoft.com...<B R>&gt;
Bonjour,<BR>&gt; <BR>&gt; Je dispose d'un site en ASP intérogeant une base SQL
serveur 2000<BR>&gt; Ce site est actuellement en français et je souhaiterais le
traduire en <BR>&gt; Russe...<BR>&gt; <BR>&gt; Dans ma base, j'ai un champ
"label_ru" qui contiendra des label Russe. <BR>&gt; Lorsque je "copie-colle" un
texte russe directement dans le champ via <BR>&gt; Entreprise manager, le texte
est bien affiché dans mon champ et lorsque je le <BR>&gt; récupère en ASP, il
s'affiche correctement :<BR>&gt; &lt;%@LANGUAGE="V BSCRIPT"
CODEPAGE="65001"% &gt;<BR>&gt; &lt;%<BR>&gt; session.CodePage = 65001<BR>&gt;
...<BR>&gt; %&gt;<BR>&gt; ...<BR>&gt; &lt;meta http-equiv="Conte nt-Type"
content="text/htm l; charset=utf-8"&gt ;<BR>&gt; &lt;%<BR>&gt;
response.write("la bel_ru")<BR>&gt; %&gt;<BR>&gt; ...<BR>&gt; <BR>&gt; Mais
lorsque je souhaite enregistrer un label russe via un formulaire ou via <BR>&gt;
l'analyseur de requète, mon champ n'affiche que des&nbsp; ??????? ????<BR>&gt;
UPDATE maTable SET label_ru = '!45;09B5' WHERE id=1<BR>&gt; SELECT label_ru FROM
matTable WHERE id=1<BR>&gt; renvoi =&gt; ????? ?????<BR>&gt; <BR>&gt; Y aurait
il une astuce ? Je ne trouve pas beaucoup d'aide sur internet...<BR>&gt ;
Merci</DIV></BODY> </HTML>

------=_NextPart_000_000D_01C80438.11E0BD40--
Avatar
Beedjees
Bonjour,

Bien vu !
J'avais déjà commencé à travailler sur votre première proposition.
L'ordre SQL utilisé est la procédure stockée "sp_executesql" qui a priori
est récomendée pour exécuter une chaîne Unicode.

Mais la solution la plus simple est votre deuxième proposition : placer un
"N" devant la chaine unicode. L'aide en ligne d'SQL serveur 2000 le signalait
: "les constantes Unicode sont spécifiés avec N comme première lettre :
N'chaîne Unicode' ;"

Mon problème est donc résolu !

Merci pour vos conseils.
Cordialement.

"Philippe TROTIN [MS]" a écrit :

Bonjour,

Quelques pistes :

1. Mettez un profiler pour voir ce qui se passe au niveau de l'ordre SQL passé à SQL Server

2. Peut être :
UPDATE maTable SET label_ru = N'Сделайте' WHERE id=1
SELECT label_ru FROM matTable WHERE id=1



Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"Beedjees" a écrit dans le message de groupe de discussion :
> Bonjour,
>
> Je dispose d'un site en ASP intérogeant une base SQL serveur 2000
> Ce site est actuellement en français et je souhaiterais le traduire en
> Russe...
>
> Dans ma base, j'ai un champ "label_ru" qui contiendra des label Russe.
> Lorsque je "copie-colle" un texte russe directement dans le champ via
> Entreprise manager, le texte est bien affiché dans mon champ et lorsque je le
> récupère en ASP, il s'affiche correctement :
> <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
> <%
> session.CodePage = 65001
> ...
> %>
> ...
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
> <%
> response.write("label_ru")
> %>
> ...
>
> Mais lorsque je souhaite enregistrer un label russe via un formulaire ou via
> l'analyseur de requète, mon champ n'affiche que des ??????? ????
> UPDATE maTable SET label_ru = 'Сделайте' WHERE id=1
> SELECT label_ru FROM matTable WHERE id=1
> renvoi => ????? ?????
>
> Y aurait il une astuce ? Je ne trouve pas beaucoup d'aide sur internet..


Avatar
Pierre Goiffon
Beedjees wrote:
Je dispose d'un site en ASP intérogeant une base SQL serveur 2000
Ce site est actuellement en français et je souhaiterais le traduire en
Russe...

Dans ma base, j'ai un champ "label_ru" qui contiendra des label Russe.
Lorsque je "copie-colle" un texte russe directement dans le champ via
Entreprise manager, le texte est bien affiché dans mon champ et lorsque je le
récupère en ASP, il s'affiche correctement :
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
session.CodePage = 65001
...
%>
...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
response.write("label_ru")
%>
...

Mais lorsque je souhaite enregistrer un label russe via un formulaire ou via
l'analyseur de requète, mon champ n'affiche que des ??????? ????



Il y a plusieurs choses à regarder :
- la communication entre le serveur web et le navigateur
- l'environnement du traitement côté serveur web
- la communication entre le traitement côté serveur web et le serveur SQL
- la conception de la base au sein du serveur SQL

Visiblement, vos pages sont envoyées avec les bons paramètres charset.
Vérifiez quand même déjà que le contenu est correctement récupéré du
formulaire dans l'application Web.
Ensuite, vérifiez le codage utilisé pour la connexion au serveur SQL !
Avatar
Philippe TROTIN [MS]
Heureux d'avoir pu vous aider. :-)

Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"Beedjees" a écrit dans le message de
groupe de discussion :
Bonjour,

Bien vu !
J'avais déjà commencé à travailler sur votre première proposition.
L'ordre SQL utilisé est la procédure stockée "sp_executesql" qui a priori
est récomendée pour exécuter une chaîne Unicode.

Mais la solution la plus simple est votre deuxième proposition : placer un
"N" devant la chaine unicode. L'aide en ligne d'SQL serveur 2000 le
signalait
: "les constantes Unicode sont spécifiés avec N comme première lettre :
N'chaîne Unicode' ;"

Mon problème est donc résolu !

Merci pour vos conseils.
Cordialement.

"Philippe TROTIN [MS]" a écrit :

Bonjour,

Quelques pistes :

1. Mettez un profiler pour voir ce qui se passe au niveau de l'ordre SQL
passé à SQL Server

2. Peut être :
UPDATE maTable SET label_ru = N'Сделайте' WHERE id=1
SELECT label_ru FROM matTable WHERE id=1



Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"Beedjees" a écrit dans le message
de groupe de discussion :

> Bonjour,
>
> Je dispose d'un site en ASP intérogeant une base SQL serveur 2000
> Ce site est actuellement en français et je souhaiterais le traduire en
> Russe...
>
> Dans ma base, j'ai un champ "label_ru" qui contiendra des label Russe.
> Lorsque je "copie-colle" un texte russe directement dans le champ via
> Entreprise manager, le texte est bien affiché dans mon champ et lorsque
> je le
> récupère en ASP, il s'affiche correctement :
> <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
> <%
> session.CodePage = 65001
> ...
> %>
> ...
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
> <%
> response.write("label_ru")
> %>
> ...
>
> Mais lorsque je souhaite enregistrer un label russe via un formulaire
> ou via
> l'analyseur de requète, mon champ n'affiche que des ??????? ????
> UPDATE maTable SET label_ru = 'Сделайте' WHERE id=1
> SELECT label_ru FROM matTable WHERE id=1
> renvoi => ????? ?????
>
> Y aurait il une astuce ? Je ne trouve pas beaucoup d'aide sur
> internet..