在Java中转换HTML字符编码

我们正在尝试下载网页的来源,但是由于字符编码,我们无法看到一些特定的字符 – 如ü,ö,ş,ç-propoerly.我们尝试使用以下代码来转换字符串的编码(“text”变量):

byte[] xyz = text.getBytes();
text = new String(xyz,"windows-1254"); 

我们观察到如果编码为utf-8,我们仍然无法正确查看页面.我们应该做什么?

最佳答案 如果您知道页面将其内容编码为UTF-8,请告诉String构造函数使用UTF-8编码来解释字节.

但是我不确定这是你问题的严重程度.在尝试“转换”之前,您已经有了“文本”.根据某些编码,这意味着已经尝试将页面的字节解释为String.如果这是错误的编码,你以后做的任何事情都无法修复它.

相反,你需要修复这个上游.

byte[] bytesOfThePage = ...;
String text = new String(bytesOfThePage, "UTF-8");
点赞