java - 变音符号的解码问题

标签 java string utf-8 character-encoding

下面这两个字符串有什么区别?当我解码第一个字符串时,它工作正常,并且我可以看到变音字符显示得很好。

String val = "m%C3%B6torhead album";
String decodedVal = URLDecoder.decode(val, StandardCharsets.UTF_8);

但是当我尝试解码下面的字符串时,我看不到变音字符工作正常。

String val = "m%EF%BF%BDtorhead album";
String decodedVal = URLDecoder.decode(val, StandardCharsets.UTF_8);

谁能告诉我这里出了什么问题吗?这些字符串是我们从上游获取的,因此我们无法控制。

最佳答案

第二个序列解码为 U+FFFD REPLACMENT CHARACTER,用于替换其值未知或无法用 Unicode 表示的传入字符。

这意味着您可能会看到类似 � 的内容。

您无法在客户端上解决该问题,问题出在服务器上,需要在那里修复。

关于java - 变音符号的解码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51981080/

相关文章:

java - Spring Batch Item Writer Listener 不工作

string - 如何将C字符串转换为D字符串?

c# - 如何在 C# 中使用字符串作为参数的方法

perl - 如何用空格替换无效的 UTF8 字符

java - 如何在不必实现接口(interface)方法的情况下使用它们?

java - 如何验证复选框在 selenium webdriver 中是否已选中或未选中

RubyInline - 比较字符串

php - UTF-8 兼容截断函数

java - UTF-8 字符在 JOptionPane 中不正确

java - hibernate中的依赖事务