⑴ java读写文件,如何避免中文乱码
1、你要将所有的文件的编码都设置成UTF-8,还有,你的MyEclipse或者Eclipse应该配置jsp还有java文件还有项目都设置为UTF-8.
2、eclipse 中使用模板新建 JSP,xhtml等 文件时,默认的编码为:ISO-8859-1。 ISO-8859-1 编码对于中文的显示是不支持的,如果要支持简体中文,则编码方式应为 GBK 或者 GB2312 或者 UTF-8(推荐) 等。右键菜单栏window --> preferences --> 在type filter text中输入jsp; --> 选择下面的jsp -> 选择creating files组中的encoding 为UTF-8编码就可以了
如果要使新建立工程、java文件直接使UTF-8则需要做以下工作:
1、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧 Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8。
2、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Content Types,右侧Context Types树,点开Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。其他java应用开发相关的文件 如:properties、XML等已经由Eclipse缺省指定,分别为ISO8859-1,UTF-8,如开发中确需改变编码格式则可以在此指定。
⑵ 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处理中文乱码最多的场景就是文件下载时中文文件名乱码。
⑶ cmd运行的java文件咋是乱码
当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决方法:
1、转换成UTF-8编码格式,但仍然有错解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
2、开始-->计算机-->鼠标反键(鼠标右键)-->属性-->高级系统设置-->环境变量-->系统变量新建。然后输入:“JAVA_TOOL_OPTIONS”变量,值为“-Dfile.encoding=UTF-8”然后确定、确定、在确定后。新开命令行窗口,再次输入javac命令。
⑷ java Apache ftp涓嬭浇鏂囦欢鍐呭逛贡镰侊纴涓嶆槸鏂囦欢钖崭贡镰侊纴璁剧疆浜哰ftp.setControlEncoding("GBK");]涔熸病鐢ㄣ
鎴戜及璁℃槸浣犵殑绗浜屽紶锲剧殑闾d釜鏂囦欢镄勪缭瀛樼殑缂栫爜镙煎纺璺熶綘璁剧疆镄凣BK镄勪紶杈撶紪镰佹牸寮忎笉涓镊
⑸ java程序乱码和服务器上操作系统的编码有关系吗
这个路操作系统也有关系,如果没有指定编码,java 程序就会取系统的编码,建议设置成UTF-8编码。
两种在代码中解决乱码的方法:
1.servlet中doGet方法:
String name = request.getParameter("name");
String name = new String(request.getParameter("name").getBytes("ISO8859-1"),"utf-8");
2.使用过滤器解决乱码问题
在工程中新建Fliter过滤器文件
在doFliter方法中写入如下代码:
HttpServletRequest req = (HttpServletRequest)request;
3.在开发工具eclipse文件编码设置:
1. 点击windows。
2. 在列表最下点击reference。
3. 在reference界面点击Workspace
4. 在右边的Tex file encoding点击Other。
5. 选择对应编码即可。
6. 建议使用UTF-8编码。
⑹ 在华为手机下载文件后文件名是乱码如何解决
下载的文件名有中文就会出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
如:String str = new String(str.getByte("iso8859-1"),"UTF-8");进行下强制转换后在进行读取即可。
通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。