首页

文章

java转码后局部乱码问题

发布网友 发布时间:2022-04-19 09:50

我来回答

3个回答

热心网友 时间:2023-10-02 04:34

问题给你解决了,看代码

public class Test {
public static void main(String[] args) {

try {
String s = new String("中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt".getBytes(),
"UTF-8");
System.out.println(s);
s = java.net.URLDecoder.decode(s, "utf-8"); //utf8转gbk
System.out.println(s);
Test convert = new Test();
byte[] fullByte = convert.gbk2utf8(s); //gbk转utf8
String fullStr = new String(fullByte, "UTF-8");
System.out.println("string from GBK to UTF-8 byte: " + fullStr);

} catch (Exception e) {
e.printStackTrace();
}
}

public byte[] gbk2utf8(String chenese) {
char c[] = chenese.toCharArray();
byte[] fullByte = new byte[3 * c.length];
for (int i = 0; i < c.length; i++) {
int m = (int) c[i];
String word = Integer.toBinaryString(m);

StringBuffer sb = new StringBuffer();
int len = 16 - word.length();

for (int j = 0; j < len; j++) {
sb.append("0");
}
sb.append(word);
sb.insert(0, "1110");
sb.insert(8, "10");
sb.insert(16, "10");

String s1 = sb.substring(0, 8);
String s2 = sb.substring(8, 16);
String s3 = sb.substring(16);

byte b0 = Integer.valueOf(s1, 2).byteValue();
byte b1 = Integer.valueOf(s2, 2).byteValue();
byte b2 = Integer.valueOf(s3, 2).byteValue();
byte[] bf = new byte[3];
bf[0] = b0;
fullByte[i * 3] = bf[0];
bf[1] = b1;
fullByte[i * 3 + 1] = bf[1];
bf[2] = b2;
fullByte[i * 3 + 2] = bf[2];

}
return fullByte;
}
}

结果:
中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt
中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt
string from GBK to UTF-8 byte: 中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt

热心网友 时间:2023-10-02 04:35

从第一行正确可以看出,你的系统默认编码是UTF-8;
第一行的意思是根据UTF-8解码,然后再编码
所以用什么解码,就需要用什么编码
String s = new String("中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt".getBytes(),"UTF-8");
System.out.println(s);
s = new String(s.getBytes("GBK"), "GBK");
System.out.println(s);
s = new String(s.getBytes("UTF-8"), "UTF-8");
System.out.println(s);

热心网友 时间:2023-10-02 04:35

控件上传的是什么编码你查一下嘛,然后直接new String(s.getBytes("控制上传字符串的编码"),"你指定的编码格式") 就好了,tomcat中的表单默认的上传编码格式是ISO-8859-1,直接转成你要的格式:如new String(getRequest().getParameter("content").getBytes("ISO-8859-1"), "UTF-8");追问控件上传是"UTF-8"的,我们在struts2里配置的,这样我们在接收的时候都转成了GBK的, 我在系统里在转回UTF-8格式的编码就出现了这种局部乱码, 并不是全部乱码。

ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 200分悬赏一个弱智问题 分给第一个帮我解决的 新兰文,不要太长,中等就行 急求一首歌歌名 乱码邮件,求高手翻译转码 GreenBrowser 菜鸟求救1! .bak?是什麽类型文件? 环保的资料 这个是啥意思??? 没有问题,被逼提问怎么办? 繁体字转换为简体字 如何使用百度文库 怎么才能把Word2003升级到2008 word2003下载 数据库的几个基本概念,数据,对象,实体,属性,数据模型 数据库中的实体解释? 实体经济是什么?概念说下 数据库里面“实体”的定义是什么? 面域、块、实体是什么概念? 哲学中所谓实体、本体、主体的区别与联系 古文翻译 不屑一顾的出处。 日语中“庄”字非汉语表示,应该怎么打那些日文? 明太祖的姓是“朱”还是左边有个石字旁+朱的zhu? 高德地图订酒店怎么微信支付 高德地图我怎么支付不了 如何免费拆分pdf文件? 如何分割pdf文件 wps如何拆分pdf成多个文件 pdf怎么拆分成一页一页的? pdf怎么拆分成多个pdf 怎么拆分pdf 提取几页? 高德打车微信支付分不够怎么办 高德打车怎么微信支付不符合条件 鎯虫垚涓轰綘涓g釜浜虹殑涓揿睘鍝嗗暒是什么意思 锲炰笉浜嗗ぉ绌虹殑鏄熸槦猸什么意思 B照科目三都是考什么 驾照科目三考试总分多少,多少分算及格啊? B证科目三考什么 B证科目三开放预约时间 b证考试流程是怎么样的?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com