忙了半天终于把中文字符乱码问题解决了。下面跟大家分享一下吧。
情况一:
问题描述:HttpURLConnection去请求一个xml文件并解析xml文件内容。每次解析出来xml中的中文都是乱码。这肯定是字符集编码不统一的问题。解决这个问题主要从一下步骤来。
1. 检查你xml文件的编码格式。(确定xml的编码格式,这个很重要,因为这个决定了你请求到xml内容后采用的编码格式,不相同的话可能会有乱码)
2. 知道了xml的编码格式后,就好办了。如下:
情况二:
问题描述:当你在url中想请求一个带中文名的文件时。你需要修改tomcat的配置,因为tomcat默认编码是不支持中文的。配置修改如下:
另外,你在使用URL url = new URL(str)的时候,这里是用传过来的str直接创建url,但是要注意一点,这里这里是不支持中文字符的,所以你要采用URLEncode的encode方法来将中文字符转换成url接受的字符。
好了,就到这里吧。 :D
情况一:
问题描述:HttpURLConnection去请求一个xml文件并解析xml文件内容。每次解析出来xml中的中文都是乱码。这肯定是字符集编码不统一的问题。解决这个问题主要从一下步骤来。
1. 检查你xml文件的编码格式。(确定xml的编码格式,这个很重要,因为这个决定了你请求到xml内容后采用的编码格式,不相同的话可能会有乱码)
2. 知道了xml的编码格式后,就好办了。如下:
HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
// 将资源读到inputsream中
inputStream = urlConn.getInputStream();
BufferedReader buf = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));// 创建UTF-8的BufferedReader
try {
while((line = buf.readLine())!=null){
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
情况二:
问题描述:当你在url中想请求一个带中文名的文件时。你需要修改tomcat的配置,因为tomcat默认编码是不支持中文的。配置修改如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
[color=red]URIEncoding="UTF-8"[/color]/>
另外,你在使用URL url = new URL(str)的时候,这里是用传过来的str直接创建url,但是要注意一点,这里这里是不支持中文字符的,所以你要采用URLEncode的encode方法来将中文字符转换成url接受的字符。
好了,就到这里吧。 :D