【问题标题】:Classic ASP Convert Latin Characters to Unicode Escape Strings经典 ASP 将拉丁字符转换为 Unicode 转义字符串
【发布时间】:2017-09-17 12:01:35
【问题描述】:

我需要一个 Classic ASP 函数,该函数将接受一个字符串,例如 Jämshög 并将其转换为 J\u00e4msh\u00f6g,以便所有重音字符都成为其等效的 unicode 转义码。

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

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

【问题讨论】:

    标签: asp-classic unicode-escapes


    【解决方案1】:

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

    【讨论】:

    • 非常感谢!这正是我所需要的。
    • 有没有办法反其道而行之?
    • @hormigaz 另一种方式(解码/解析)比这更复杂。我会看看其他库能够为 ASP Classic 解析 JSON。
    • 嗨@Kul-Tigin!我找到了另一个可以完美运行并根据您的语言环境解码 unicode 字符的库。链接在这里 --> JSON object class 3.8.1 By RCDMK.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    相关资源
    最近更新 更多