Bri*_*n G 10 utf-8 asp-classic
我有一个问题,我在SQL Server中将UTF-8字符串存储为UCS-2.当我将其拉出来显示内容类型设置为UTF-8的页面时,它可以正常工作.但我有一个第三方Javascript组件,当我传递数据库的字符串时,它将其呈现为USC2.或者不是UTF8.
在从数据库中读取该字符串并将其传递给第三方组件(混淆)后,是否有一种方法可以将此字符串转换为UTF-8?
希望这是有道理的.
Ant*_*nes 40
我怀疑你是不是犯了经典形式的帖子字符编码不匹配问题.
它是这样的: -
如果直接使用SQL Server工具检查字段内容,则可能会在那里看到损坏的字符串.现在您要将此字符串与另一个期望直接unicode字符串的组件一起使用,这是您发现此错误的地方.
解决方案是始终确保您的所有页面不仅在响应中发送CharSet ="UTF-8",而且在使用Response.Write之前和尝试读取任何Request.Form值之前也使用Response.CodePage = 65001.在<%@页眉中使用Codepage指令.
现在,您只需修复数据库中已损坏的字符串.
使用ADODB.Stream :-
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
Run Code Online (Sandbox Code Playgroud)
这个函数(BTW是你实际问题的答案)采用一个损坏的字符串(一个具有字节表示字节的字符串)并转换为它应该具有的字符串.您需要将此转换应用于已成为该bug的受害者的DB中的每个字段.
| 归档时间: |
|
| 查看次数: |
23014 次 |
| 最近记录: |