Java将Windows-1252转换为UTF-8,有些字母错误
我从外部Microsoft SQL 2008数据库接收数据(我通过MyBatis进行查询)。在理论中,我在“ Windows-1252”上接收数据编码。
我尝试使用以下代码解码数据:
字符串textoFormado = …来自MyBatis的值…;
String s = new String(textoFormado.getBytes(“ Windows-1252”),“ UTF-8”);
几乎所有的字符串都正确解码。但是有些带有音符的字母却没有。
例如:
- 我从数据库收到以下字符串:“Ãvila”
- 我使用上面的代码,这使它成为字符串:“ …?vila”
- 我期望这个字符串:“Ávila”
回答:
我解决了所有的问题。
我有下一个 :
- MyBatisQueries:我有一个带有“选择”的查询,该查询为我提供了字符串
- Pojo保存字符串(这给了我带有转换问题的字符串)
- 该类使用查询和带有数据的Pojo对象(表明解码错误)
(MyBatis和Spring注入依赖项和参数):
public class Pojo { private String params;
public void setParams(String params) {
try {
this.params = params;
}
}
}
public class Pojo { private String params;
public void setParams(byte[] params) {
try {
this.params = new String(params, "UTF-8");
} catch (UnsupportedEncodingException e) {
this.params = null;
}
}
}
以上是 Java将Windows-1252转换为UTF-8,有些字母错误 的全部内容, 来源链接: utcz.com/qa/420749.html