我遇到一个问题,就是我在SQL Server中存储了一个UTF-8字符串作为UCS-2。当我将其取出并以content-type设置为UTF-8的方式显示在页面上时,它可以正常工作。但是我有一个第三方JavaScript组件,当我向其传递来自数据库的字符串时,它会将其呈现为USC2,而不是UTF8。
在ASP中,是否有一种方法可以在从数据库读取字符串后将其转换为UTF-8,以便将其传递给第三方组件(已混淆)?
希望这样说有意义。
我遇到一个问题,就是我在SQL Server中存储了一个UTF-8字符串作为UCS-2。当我将其取出并以content-type设置为UTF-8的方式显示在页面上时,它可以正常工作。但是我有一个第三方JavaScript组件,当我向其传递来自数据库的字符串时,它会将其呈现为USC2,而不是UTF8。
在ASP中,是否有一种方法可以在从数据库读取字符串后将其转换为UTF-8,以便将其传递给第三方组件(已混淆)?
希望这样说有意义。
Function ConvertFromUTF8(sIn)
Dim oIn: Set oIn = CreateObject("ADODB.Stream")
oIn.Open
oIn.CharSet = "WIndows-1252"
oIn.WriteText sIn
oIn.Position = 0
oIn.CharSet = "UTF-8"
ConvertFromUTF8 = oIn.ReadText
oIn.Close
End Function
这个函数(顺带一提,它是你实际问题的答案)接受一个已损坏的字符串(即具有字节表示的字节),并将其转换为应该是的字符串。您需要对DB中每个受到该错误影响的字段应用此转换。
ConvertFromUTF8()
函数的使用应该仅限于纠正损坏的数据。开发人员仍应确保纠正站点以使用正确的编码,并避免首次出现编码不匹配。 - user692942