ASPページ上の任意の入力または出力がある場合は魔法のようにthis sort of thing作品:ASP classic:ADODBの文字エンコードを決定する要因は何ですか?
<%@ LANGUAGE="VBScript" CodePage = 65001 %>
<%
Response.CharSet = "UTF-8"
Response.CodePage = 65001
%>
しかし、それは純粋なVBSを実行するASPページだと私はMSにパラメータとして非ラテン文字の文字列を渡す場合SQL sprocをServer.CreateObject("ADODB.Command")
経由で実行すると、コマンドが実行され、MS SQLがvarchar列に置かれたときの間の一連の?
文字に変換されます。
ただし、同じASPページでUTF-8エンコーディングでデータベースにこのような文字列を挿入するIISのインスタンスが1つあります。それを可能にするIIS設定が見つからないので、ADODB.Commandパラメータ値を強制的にUTF-8に変換できますか?
UTF-8でエンコードされた文字をSQL Serverに渡す場合は、「VARCHAR」ではなく「NVARCHAR」列に配置する必要があります。これは、エンコーディングの不一致を説明します。パラメータとして、それぞれ 'adVarWChar'または' adLongVarWChar'のデータ型を使用するべきです。 – Lankymart
@Lankymart - 私はそのADOデータ型フラグを使って今すぐテストします。私は、DBカラム*がNVARCHARであるべきであることを知っていますが、それはレガシーシステムです。 [ASPが別のIISサーバーから実行されたときに、まったく同じデータベースとコードがUTF-8でエンコードされた文字列を受け取っていた可能性があります](http://serverfault.com/q/796971/350508) – feetwet
興味深い質問ですが、両方のサーバーで同じプロバイダが使用されていますか?また、ページが何をしているか、つまりフォームからデータを投稿しているかどうかにも依存します。 – Lankymart