gpt4 book ai didi

java - 有没有办法修复错误的编码字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:31 24 4
gpt4 key购买 nike

我通过消息代理 (Stomp) 获取此字符串:

João

这就是应该的样子:

João

有没有办法在 Java 中恢复它?!谢谢!

最佳答案

U+00C3  Ã   c3 83   LATIN CAPITAL LETTER A WITH TILDE
U+00C2 Â c3 82 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
U+00A3 £ c2 a3 POUND SIGN
U+00E3 ã c3 a3 LATIN SMALL LETTER A WITH TILDE

我无法确定这怎么可能是数据(编码)转换问题。有没有可能数据只是坏的?

如果数据不错,那么我们必须假设您误解了编码。我们不知道原始编码,除非您做一些不同的事情,否则 Java 的默认编码是 UTF-16。我不明白如何将以任何常见编码编码的 João 解释为 UTF-16 中的 Joã£o

可以肯定的是,我编写了这个 python 脚本,但没有找到匹配项。我不是完全确定它涵盖了所有编码,或者我没有遗漏一个极端情况,FWIW。

#!/usr/bin/env python                                                                                                                   
# -- coding: utf-8 --
import pkgutil
import encodings

good = u'João'
bad = u'João'

false_positives = set(["aliases"])

found = set(name for imp, name, ispkg in pkgutil.iter_modules(encodings.__path__) if not ispkg)
found.difference_update(false_positives)
print found


for x in found:
for y in found:
res = None
try:
res = good.encode(x).decode(y)
print res,x,y
except:
pass
if not res is None:
if res == bad:
print "FOUND"
exit(1)

关于java - 有没有办法修复错误的编码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10107691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com