在java中怎样处理中文乱码的问题?(有几种处理方式)

 我来答
千锋教育
2015-12-06 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
  读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。
  可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
  BufferedReader bre = null;
  try {
  String file = "D:/test/test.txt";
  bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
  while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
  {
  System.out.println(str);//原样输出读到的内容
  };
  备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
  可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
  OutputStreamWriter pw = null;//定义一个流
  pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
  pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
  pw.close();//关闭流
  备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
libingjiekkk
2011-04-18
知道答主
回答量:11
采纳率:0%
帮助的人:1.9万
展开全部
(1) string ss; ss=new string(ss.getBytes("IS0-8859-1","GB2312"));
(2)在web.xml中添加<filter></filter>标签处理乱码;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好笑且不懈灬小喵3673
2011-04-09 · TA获得超过1756个赞
知道小有建树答主
回答量:529
采纳率:100%
帮助的人:393万
展开全部
所以在以url(或表单提交方式是get的数据)传值的时候应该硬性转码:
String para =new String(str.getByte("iso-8859-1"),"UTF-8");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chp19860820
2011-04-08 · TA获得超过921个赞
知道小有建树答主
回答量:750
采纳率:0%
帮助的人:564万
展开全部
统一编码,如用utf-8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaosarong
2011-04-08 · 超过13用户采纳过TA的回答
知道答主
回答量:40
采纳率:50%
帮助的人:21.7万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式