【问题标题】:Decode utf8 character on javascript在javascript上解码utf8字符
【发布时间】:2021-09-17 20:03:59
【问题描述】:

我有一个配置错误的第三方服务,它输出如下字符串:

"SK Uni=C4=8Dov vs Prostejov"

我想即时替换它发送给我的所有错误字符,以便我的模块使用正确解码的字符串

我在这个网站 (https://www.compart.com/en/unicode/U+010D) 上发现 =C4=8D 子字符串对应于 utf-8 字符 č

https://www.compart.com/en/unicode/U+010D

č
...
UTF-8 Encoding:     0xC4 0x8D
UTF-16 Encoding:    0x010D
UTF-32 Encoding:    0x0000010D
...

但我找不到自动解码的方法。

我试过了:

>> String.fromCodePoint(0xc48d)
"쒍"


>> String.fromCodePoint("0xc4 0x8d")
RangeError    

>> String.fromCharCode(0xc48d)
"쒍"

etc...

如果我使用 utf-16 代码,String.fromCodePoint(0x010D) 会输出正确的字符。

如何让它使用 utf-8 而不是 utf-16 代码?

我应该将我的字符串转换为 utf16 来实现我想要的吗?如果是这样,我该如何转换它?

【问题讨论】:

  • 这让我想起了 RFC 2047 和引用的可打印编码。 dogmamix.com/MimeHeadersDecoder
  • 是的,你是对的@Álvaro González,将其视为引用的可打印文件即可解决。谢谢。

标签: javascript utf-8 character-encoding


【解决方案1】:

由于编码与 URL 中使用的百分比转义几乎相同,您可以简单地使用:

decodeURIComponent("SK Uni=C4=8Dov vs Prostejov".replace(/=/g, "%"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 2011-06-22
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2022-06-19
    • 1970-01-01
    相关资源
    最近更新 更多