エンコーディングとして ks_c_5601-1987 (韓国語) を使用するページ A と、エンコーディングとして UTF-8 (韓国語) を使用するページ B があるとします。A から B に韓国語の文字列変数を渡す必要があります。2 つのページが異なるエンコーディングを使用しているため、B が Request() を使用して変数を受け取ると、変数がごちゃごちゃになります。
Bに渡すときに、Aの文字列変数をUTF-8にエンコードするにはどうすればよいですか? ここでは、両方のページを UTF-8 エンコーディング スキームとして設定することが最も賢明な解決策であることを認識していますが、ページ A は ks_c_5601-1987 エンコーディングに完全に依存するいくつかの dll を使用するため、残念ながらここではオプションではありません。
編集:答えを確認した後、先に進んでその方法を試しました。これは、可変メールボックスを get_list_center.asp に送信するコードです。
<!--mail_mail.asp, page in ks_c_5601-1987-->
<%
dim mailbox = "테스트"
Response.CodePage = 65001 'Response.write should now encode the string into UTF-8
%>
...
<frame name="get_list_center" scrolling="auto" marginwidth="0" framespacing="0" marginheight="0" frameborder="0" src="get_list_center.asp?mailbox=<%=mailbox%>">
これは、get_list_center.asp で変数を受け取る方法です。
<%
Session.Codepage=65001
Response.CharSet="UTF-8"
response.Write CStr(response.codepage) & "<BR>"
response.Write CStr(session.CodePage) & "<BR>"
response.Write CStr(response.CharSet) & "<BR>"
response.codepage = 949
response.Write mailbox & "<BR>"
response.codepage = 65001
response.Write mailbox & "<BR>"
%>
結果は次のとおりです。
response.write の 949 (ks_c_5601-1987) バージョンと 65001 (UTF-8) バージョンの両方が壊れています。私が見逃しているものは他にありますか?