经典ASP将拉丁字符转换为Unicode转义字符串

时间:2017-09-17 12:01:35

标签: asp-classic unicode-escapes

我需要一个经典ASP函数,它将采用Jämshög等字符串并将其转换为J\u00e4msh\u00f6g,以便所有重音字符成为等效的unicode转义码。

我将此数据以JSON字符串形式发送到API,该API要求所有特殊字符都使用unicode转义码。

我一直在寻找解决方案似乎需要几个小时的时间,但我还没有成功。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

查看下面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