当前位置:编程学习 > JAVA >>

字符编码问题

路径下的TXT文件里的内容是汉字。。但是下载后是的内容全是 “ 问号”。。???这些。。如何解决呢?
 还有是就是找到TXT文件后  不输出文件内容
private static void txtOnline(int flag, String txtname) {
System.out.println("*************************************");
System.out.print("当前操作:阅读");
System.out.println(txtname);

// 调用客户端业务的查询方法,获取服务器返回信息
Datas datas = clientBIZ.dotxtOnline(flag, txtname);
if (datas.getFlag().equals(SysConstants.SYS_ONLINE)) {
// 正确返回数据

// String buffer = datas.getTxtBook().getBuffer().toString();
// 得到小说的内容str!!!

String str = new ServerService().findtxtOnline(SysConstants.SYS_WUXIA, txtname.concat(".txt")).getBuffer().toString();
System.out.println(str);
System.out.println("………………省略内容,请下载后阅读");
System.out.println("*************************************"); --------------------编程问答-------------------- 确保原始文件的编码和你toString的编码一致。 

一般情况下,toString等方法会默认使用系统编码来构造字符串。

很容易乱码。

如果搞不清楚的情况下,传输最好直接传2进制流。

--------------------编程问答-------------------- 字符集编码设置为UTF-8,不行弄个过滤器。 --------------------编程问答-------------------- 用二进制高级流,绝对不会出现乱码问题。。。。
FileOutPutStream fout  = new FileOutputStream("txt路径");
DataOutputStream dout = new DataOutputStream(fout); --------------------编程问答-------------------- 彻底解决struts2中文乱码处理秘籍:

1、JSP请求页面和响应页面的字符编码统一使用“UTF-8”
1.1、设置IDE开发环境的字符编码
1.2、设置project工程的字符编码
1.3、JSP文件的字符编码环境

2、在struts.xml中配置:
<!-- 指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法 -->
  <constant name="struts.i18n.encoding" value="UTF-8"/> <!--internationalization 国际化-->
  此标签的作用相当于在Servlet中的request.setCharacterEncoding("UTF-8");
  
  3、以上两个步骤可以处理表单为post的方式提交的中文数据,如果依然处理乱码问题可进行第4步的配置
    
  4、在web.xml中配置中文处理的filter
  注:中文过滤器如配置到struts2的过滤器之后,启动时系统不会报异常,但中文过滤器无效。必须配置到一个位置才能有效果。
  
  5、以上几种方式只能处理post方式的中文乱码。对于超链接(get方式)传递中文的处理有以下两种方式:
  5.1、在超链接页面的调用中使用JS代码将get方式转换成post方式提交。(间接调用JS)
  5.2、在Tomcat的server.xml中配置UTF-8也可以处理get方式的中文乱码
  <Connector port="8686" protocol="HTTP/1.1"  
  connectionTimeout="20000"  
  redirectPort="8443" URIEncoding="UTF-8"/>
    
  6、如个别地方依然出现中文乱码情况时,可在Action中火JavaBean中的setXXX方法中使用如下代码:
  name = new String(name.getBytes("ISO-8859-1"), "utf-8");   
  
  7、数据库字段定义的字符编码使用UTF-8
    
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,