在 javascript 上解码 utf8 字符

Decode utf8 character on javascript

我有一个配置不当的第三方服务输出这样的字符串:

"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 来实现我想要的吗?如果可以,如何转换?

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

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