आपके पास इस मैपिंग और Windows-1252 wiki article का एक अंश :
यहाँ करने के लिए चीज़ें हैं:
-
हार्ड-कोडेड टेक्स्ट होने की संभावना के विरुद्ध UTF-8 (बीओएम के बिना) एन्कोडेड फ़ाइलों का उपयोग करें। (✔ पहले ही किया जा चुका है)
-
सर्वर-साइड पर ASP के साथ या क्लाइंट-साइड पर मेटा टैग के साथ प्रतिक्रिया वर्णसेट के लिए UTF-8 निर्दिष्ट करें। (✔ पहले ही किया जा चुका है)
-
MySQL सर्वर को बताएं कि आपके आदेश वर्णसेट utf-8 में हैं, और आप utf-8 एन्कोडेड परिणाम सेट की अपेक्षा करते हैं। कनेक्शन स्ट्रिंग में एक प्रारंभिक विवरण जोड़ें:
...;stmt=SET NAMES 'utf8';...
-
Response.CodePage को 1252 पर सेट करें।
मैंने निम्नलिखित स्क्रिप्ट का परीक्षण किया है और यह एक आकर्षण की तरह काम करती है।
डीडीएल: http://sqlfiddle.com/#!8/c2c35/1
एएसपी:
<%@Language=VBScript%>
<%
Option Explicit
Response.CodePage = 1252
Response.LCID = 1060
Response.Charset = "utf-8"
Const adCmdText = 1, adVarChar = 200, adParamInput = 1, adLockOptimistic = 3
Dim Connection
Set Connection = Server.CreateObject("Adodb.Connection")
Connection.Open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDb;User=myUsr;Password=myPwd;stmt=SET NAMES 'utf8';"
If Request.Form("name").Count = 1 And Len(Request.Form("name")) Then 'add new
Dim rsAdd
Set rsAdd = Server.CreateObject("Adodb.Recordset")
rsAdd.Open "names", Connection, ,adLockOptimistic
rsAdd.AddNew
rsAdd("name").Value = Left(Request.Form("name"), 255)
rsAdd.Update
rsAdd.Close
Set rsAdd = Nothing
End If
Dim Command
Set Command = Server.CreateObject("Adodb.Command")
Command.CommandType = adCmdText
Command.CommandText = "Select name From `names` Order By id Desc"
If Request.QueryString("name").Count = 1 And Len(Request.QueryString("name")) Then
Command.CommandText = "Select name From `names` Where name = ? Order By id Desc"
Command.Parameters.Append Command.CreateParameter(, adVarChar, adParamInput, 255, Left(Request.QueryString("name"), 255))
End If
Set Command.ActiveConnection = Connection
With Command.Execute
While Not .Eof
Response.Write "<a href=""?name=" & .Fields("name").Value & """>" & .Fields("name").Value & "</a><br />"
.MoveNext
Wend
.Close
End With
Set Command.ActiveConnection = Nothing
Set Command = Nothing
Connection.Close
%><hr />
<a href="?">SHOW ALL</a><hr />
<form method="post" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
Name : <input type="text" name="name" maxlength="255" /> <input type="submit" value="Add" />
</form>
अंतिम टिप्पणी के रूप में:
जब आपको डेटाबेस से प्राप्त स्ट्रिंग्स पर html एन्कोडिंग लागू करने की आवश्यकता होती है, तो आपको सर्वर का उपयोग नहीं करना चाहिए। प्रतिक्रिया के कारण अब HTMLएनकोड करें। सर्वर-साइड पर कोडपेज 1252 है और सर्वर के बाद से। HTMLEncode निर्भर संदर्भ कोडपेज है, इससे अस्पष्ट आउटपुट होंगे।
इसलिए मामले को संभालने के लिए आपको अपना स्वयं का html एन्कोडर लिखना होगा।
Function MyOwnHTMLEncode(ByVal str)
str = Replace(str, "&", "&")
str = Replace(str, "<", "<")
str = Replace(str, ">", ">")
str = Replace(str, """", """)
MyOwnHTMLEncode = str
End Function
'Response.Write MyOwnHTMLEncode(rs("myfield").value)