本文目录一览:
- 1、cmd运行的java文件咋是乱码
- 2、java中filewriter中文乱码怎么解决?
- 3、打开java文件都是乱码怎么解决?
- 4、Java安装后运行CMD输入JAVA提示乱码?
- 5、JAVA开发中,常见的乱码有哪几种,如何解决?
- 6、在java中怎样处理中文乱码的问题?(有几种处理方式)
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中filewriter中文乱码怎么解决?
要明白,用filewriter读取文件采取的是平台默认编码(视操作系统而定)。当要写入的文本文件编码和平台默认编码不一致时,就会出现中文乱码的情况。这时可以使用filewriter 的父类OutputStreamWriter来读取。OutputStreamWriter允许用户指定编码方式,代码为:
FileInputStream fis=new FileInputStream("文件路径");
OutputStreamWriter osw=new OutputStreamWriter(fis,"文本文件的编码方式(ANSI,UTF-8...)");
osw.write();
这样写入的编码可以保证和源文本文件编码一致,就不会出现乱码了。
打开java文件都是乱码怎么解决?
编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置,每一个项目都会受到这个设置的影响。点击菜单栏中的窗口(Window)— —选项(Preferences)。
Java安装后运行CMD输入JAVA提示乱码?
可在 CMD 窗口输入 chcp 65001 后,再尝试输入 java 命令。
chcp 命令是用来显示或更改活动控制台的代码页。
在 CMD 窗口直 输入 chcp ,可以显示当前代码页编号,默认是 936 ,表示支持 GB2312 编码。
将代码页设置为 65001 ,则支持 UTF-8 编码。
JAVA开发中,常见的乱码有哪几种,如何解决?
1、浏览器调用jsp,html等页面中文显示乱码
此情况需满足两个要求:
(1)文件本身是以utf-8编辑保存的(myEclipse中在properties中鼠标右键选择utf-8)
(2)浏览器用utf-8解析:
(手动)== 在浏览器中右键选择编码格式为utf-8
(智能)== 在文件中写入如: meta name="content-type" content="text/html; charset=UTF-8" 通过meta标签模拟response头,起到告诉浏览器用utf-8的编码解析
(智能)== response.setContentType("text/html;charset=UTF-8");起到告诉浏览器用utf-8的编码解析
常用:
meta name="content-type" content="text/html; charset=UTF-8"或meta charset="utf-8"
%@ pageEncoding="utf-8"%
?xml encoding="UTF-8"?
2、通过浏览器调用servlet,页面显示乱码。
Servlet乱码分为request乱码和response乱码;
(1)response乱码问题
解决方法:
在网上很有效的解决方法是添加:
response.setCharacterEncoding("UTF-8");
解决不了,后来又搜到一条解决方法是:
response.setContentType("text/html;charset=utf-8");或者 response.setHeader("content-type","text/html;charset=UTF-8");告诉浏览器用utf-8解析。(setHeader是HttpServletResponse的方法。如果想在拦截器Filter中设置字符编码,则无此方法,因为Filter的doFilter方法的参数类型是ServletResponse)
两句都填上,后来终于解决了这个问题;
其实我们应该思考一下本质:
response.setContentType("text/html;charset=UTF-8"); 目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码;
response.setCharacterEncoding("UTF-8");目的是用于response.getWriter()输出的字符流的乱码问题。如果是response.getOutputStream()是不需要此种解决方案的,因为这句话的意思是为了将response对象中的数据以UTF-8解码后的字节流发向浏览器;
在java中怎样处理中文乱码的问题?(有几种处理方式)
读取文件的时候如果是用的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方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。