路径下的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("*************************************");
还有是就是找到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("*************************************");
FileOutPutStream fout = new FileOutputStream("txt路径");
DataOutputStream dout = new DataOutputStream(fout);
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