Java将Windows-1252转换为UTF-8,有些字母错误

我从外部Microsoft SQL 2008数据库接收数据(我通过My​​Batis进行查询)。在理论中,我在“ Windows-1252”上接收数据编码。

我尝试使用以下代码解码数据:

字符串textoFormado = …来自MyBatis的值…;

String s = new String(textoFormado.getBytes(“ Windows-1252”),“ UTF-8”);

几乎所有的字符串都正确解码。但是有些带有音符的字母却没有。

例如:

  1. 我从数据库收到以下字符串:“Ãvila”
  2. 我使用上面的代码,这使它成为字符串:“ …?vila”
  3. 我期望这个字符串:“Á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

回到顶部