经典ASP将拉丁字符转换为Unicode转义字符串
问题描述:
我需要一个经典的ASP函数,它将采用诸如Jämshög
之类的字符串并将其转换为J\u00e4msh\u00f6g
,以便所有重音字符都变成其等效的Unicode转义代码。经典ASP将拉丁字符转换为Unicode转义字符串
我将这些数据以JSON字符串形式发送到需要所有特殊字符才能使用Unicode转义码的API。
我一直在寻找几个小时来想出一个解决方案,我没有设法靠近。任何帮助将不胜感激。
答
看看下面的功能aspjson。它还处理必须转义的非Unicode字符,例如引号,制表符,换行符等。幸运的是,没有依赖关系,因此也可以独立运行。
Function jsEncode(str)
Dim charmap(127), haystack()
charmap(8) = "\b"
charmap(9) = "\t"
charmap(10) = "\n"
charmap(12) = "\f"
charmap(13) = "\r"
charmap(34) = "\"""
charmap(47) = "\/"
charmap(92) = "\\"
Dim strlen : strlen = Len(str) - 1
ReDim haystack(strlen)
Dim i, charcode
For i = 0 To strlen
haystack(i) = Mid(str, i + 1, 1)
charcode = AscW(haystack(i)) And 65535
If charcode < 127 Then
If Not IsEmpty(charmap(charcode)) Then
haystack(i) = charmap(charcode)
ElseIf charcode < 32 Then
haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
End If
Else
haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
End If
Next
jsEncode = Join(haystack, "")
End Function
非常感谢!这正是我需要的。 – VampiricMonkey