奇数个汉字GBK编码,转UTF-8编码/*模拟测试*/public class testString {public static void main(String[] args) throws UnsupportedEncodingException {String str1 = "10月.jpg";//假设是过滤器(这个是项目全工程中公用的类,不
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/29 16:48:50
奇数个汉字GBK编码,转UTF-8编码/*模拟测试*/public class testString {public static void main(String[] args) throws UnsupportedEncodingException {String str1 = "10月.jpg";//假设是过滤器(这个是项目全工程中公用的类,不
奇数个汉字GBK编码,转UTF-8编码
/*模拟测试*/
public class testString {
public static void main(String[] args) throws UnsupportedEncodingException {
String str1 = "10月.jpg";
//假设是过滤器(这个是项目全工程中公用的类,不允许修改)
try {
str1 = new String(str1.getBytes("UTF-8"),"GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str1);
//假设是我处理的Action(进行编码转回)
try {
str1 = new String(str1.getBytes("GBK"),"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str1);
}
}
输出结果:
10链�jpg
10�?jpg
检验发现,如果是偶数个汉字“10月份.jpg”
输出结果:
10链堜唤.jpg
10月份.jpg
合作开发的工程,尽量不要修改过滤器,能在Action我想尽量在Action中处理.
想了好久没想出处理方法,百度上也未搜索到合理的处理方案,
奇数个汉字GBK编码,转UTF-8编码/*模拟测试*/public class testString {public static void main(String[] args) throws UnsupportedEncodingException {String str1 = "10月.jpg";//假设是过滤器(这个是项目全工程中公用的类,不
str1 = new String(str1.getBytes("UTF-8"),"GBK");
按你的测试过程,这一步已经丢字符了,出现问号了.
--------------------------------
如果接受到的数据,是UTF-8编码的字节流,那么应该按UTF-8还原为字符,然后再getBytes("GBK")转为GBK字节流~