导航:首页 > 文件教程 > java文件名乱码

java文件名乱码

发布时间:2024-11-29 12:29:11

1. java生成文件名乱码怎么解决

输出抄excel:
response.setHeader("Content-disposition","attachment;filename*=utf-8'zh_cn'"
+URLEncoder.encode('文件名袭',"UTF-8")+".xls");//设定输出文件头
response.setContentType("application/ms-excel");//定义输出类型

2. 通过java控制linux环境下解压文件夹后中文文件名是乱码

将linux当前环境设置为中文环境即可。
修改/etc/sysconfig/i18n 文件
LANG="zh_CN.GB2312"

3. 在linux下编辑的的java文件在window下显示乱码乱码

linux一般用UTF8编码的。WINDOWS是用gbk的。所以有汉字的时候会乱码,没汉字的时候换行也会出问题。你可以用一些高级点的文本编辑器或者使用IDE,比如说你用JCreator打开就可以了。

补充:你用什么IDE的滑游?如果你直接从命令行编译的,可以帆耐通过态让春javac的参数来指定字符集,即javac -encoding utf8 文件名。

4. java程序读取properties配置文件出现中文乱码

你的properties文件编译过了吗?凡是有非西欧的字符都应该事先编译的,具体方法如下:
比如你有一个1.properties文件(含有非西欧字符),你可以在cmd窗口中切换到1.properties文件所在目录,然后输入native2ascii -reverse -encoding gb2312 1.properties ActionName_zh_CN.properties

1.properties为转换之前的文件名 ActionName_zh_CN.properties为转换之后的文件名,其中-encoding后面的gb2312是可以变的如 utf-8等

5. java打开excel乱码

HSSFWorkbook workbook = new HSSFWorkbook();//创建EXCEL文件

HSSFSheet sheet= workbook.createSheet(sheetName); //创建工作表

这样在用英文名作为工作表名是没问题的,但如果sheetName是中文字符,就会出现乱码,解决的方法如下代码

HSSFSheet sheet= workbook.createSheet();

workbook.setSheetName(0, sheetName,(short)1); //这里(short)1是解决中文乱码的关键;而第一个参数是工作表的索引号。

没有太多原因,POI就是如此;再说导出的EXCEL文件名的中文乱码问题, 导出时代码如下:

.....

this.getResponse().reset();
this.getResponse().setContentType("application/msexcel");
this.getResponse().setHeader("Content-Disposition", "inline;filename=中文名.xls");
try {
em.getExcelMutliIO(this.getResponse().getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

这个时候导出去时,文件名会为乱码,解决的办法如下,在你的代码增加下列函数:

public static String toUtf8String (String s){
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length();i++){
char c = s.charAt(i);
if (c >= 0 && c <= 255){sb.append(c);}
else{
byte[] b;
try { b = Character.toString(c).getBytes("utf-8");}
catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}

然后在导出时,对文件名引用该函数,代码如下:

this.getResponse().setHeader("Content-Disposition", "inline;filename=" +toUtf8String("中文文件名.xls"));

6. java在linux下遍历文件夹,文件名中文乱码的问题

Java 中的字符编码默认是Unicode
用new String(files[i].getName().getBytes("UTF-8"),"UTF-8");试下看

7. java https请求 中文乱码问题

尝试的方法:
1. 在服务端接收到参数时,utf-8转gbk,无效。
2. 在服务端接收到参数时,iso-8859-1转gbk,无效。
3. 在发送请求前将中文参数转码,utf-8转iso-8859-1,无效。代码如下:
new String(remark.getBytes(“UTF-8”), “ISO-8859-1”)
4. 在请求端,HttpHeader设定ContentType为“application/json;UTF-8”,无效。代码如下:
headers.setContentType(Media.valueOf(“application/json;UTF-8”));
写到这里,有人应该感觉到这有点“病急乱投医”的感觉了,没有头绪地在试着各种方式。是的,起初我觉得是请求header中采用了ISO-8859-1的编码,但尝试后很显然不是;后来我觉着是否是RestTemplate中采用的HttpMessageConverter方式所决定的,但没能找到很好的证明方式,查资料说的是StringHttpMessageConverter默认采用的是ISO-8859-1编码,可我觉得我指定了ContentType为application/json,RestTemplate不应该去调用StringHttpMessageConverter啊,其中的原理还有待深究。个人感觉这种情况出问题的可能性最大。
最后,在网上看到一篇文章后,看了一种建议方式,并且是可行的,就是使用URLEncode,将中文参数在传参前进行encode.这里以GBK编码是为了在服务器端接收参数后无需再转码了,如下:
list.add(URLEncode.encode(name, “GBK”));
URLEncode方式可以解决这种特定场景的中文乱码问题,相信理解其原理后还可以运用到更多的场景。目前我在网上看到的,关于用URLEncode处理中文乱码最多的场景就是文件下载时中文文件名乱码。

阅读全文

与java文件名乱码相关的资料

热点内容
看网站为什么会跳到其他应用 浏览:591
早期网站什么样子 浏览:144
691账号密码错误 浏览:449
微信钱包有钱转不出去 浏览:221
word中的表格文字不居中 浏览:962
手机为什么qq安装不了 浏览:290
找不到发送的文件怎么办 浏览:627
投诉农药电去什么网站 浏览:890
九洲app在哪里可以下载 浏览:517
word文件关联 浏览:265
qq管家文件保险柜 浏览:610
可视化积木编程软件有哪些 浏览:549
设备编程岗是做什么的 浏览:334
安卓怎么修改读写权限 浏览:781
appleiphone6splus 浏览:341
自己建的网站怎么发帖 浏览:300
pe装win10文件错误 浏览:990
楚留香手游里捏脸数据怎么用 浏览:944
安徽语音聊天app有哪些 浏览:532
怎么打开字幕文件 浏览:646

友情链接