java乱码转中文乱码
‘壹’ java文件乱码,不是中文乱码,是整个都乱码
我们在eclipse中打开java项目,发现中文都是乱码。
首先我们可以打开工具菜单“Project”--“Properties”。
‘贰’ java 琤字乱码转成utf-8还是乱码,求解决
要看你的数据是不是UTF-8的,对中文来说还有其他几种编码,你可以试一下:
GBK或者GB18030
GB2312 是上面的子集
Unicode
还要确认不是BIG5汉字
‘叁’ 如何解决Java项目中的中文乱码
设置工作空间的编码:
编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置,每一个项目都会受到这个设置的影响。点击菜单栏中的窗口(Window)— —选项(Preferences)。
点击常规(General)— —工作空间(Wordspace),然后在右侧的文本文件编码格式(Text file encoding)中选择你想要设置的编码格式,系统默认的格式为GBK。
设置项目的编码:
如果其他的项目中不存在乱码问题,只是个别项目显示时出现乱码,那么我们不需要设置工作空间的编码,只需要修改项目的编码即可。
选中项目后,右键点击,在弹出的菜单中点击属性(Properties)。
在弹出的属性窗口中,选择资源(Resource)— —点击选择Other(其他),然后选择你想要的编码格式。
设置单个文件的编码:
只是个别文件出现了乱码,那么设置个别文件的编码格式就可以解决问题了。选中有乱码的文件,然后点击右键。
在弹出的菜单中选择属性(Properties)。
在弹出的属性窗口中选择资源,点击Other(其他)后设置个别文件的编码方式
‘肆’ java 中文乱码,把hello world改成中文的就会显示乱码!
javac的时候价格参数。
-encoding 你的文件时utf8编码的吗?
如果是就这样
javac -encoding utf-8 Java1_2.java
‘伍’ java中字符乱码转化的问题
如果B接受编码方式也不能更改为和A一致,那么举个例子
A GBK,B UTF-8
B获取的内容乱码,
String s=request.getParameter("字段名");
这里s会乱码,可以做如下转换
byte[] bytes=s.getBytes(" B当前的编码格式");
String s=new String(bytes,"A的编码方式");
这个时候s就正常了
‘陆’ java程序执行中文乱码如何解决
看你编译没问题,运行时报乱码错误。说明是代码的编码跟DOS系统的编码不一致。
DOS系统是ASCII码,你看一下你代码的编码是什么,应该不是ASCII码,你把你的代码编码转换成ASCII码试试先,不行再转成UTF-8试试,这样应该就解决了(如果是编码不一致的问题的话)
‘柒’ java中文乱码 为什么有时候只能处理前面中文,后面还是乱码
这要看你系统本来默认是什么编码方式的了这很重要。
在.java中声明的String变量的字符编码,是与当前文本编辑器使用的字符编码一致
例如,在MyEclipse中,我设置的默认编码为GBK
系统数据依照gbk的编码方式。使用str.getBytes("gbk")把数据还原(这点很重要),
然后利用new String(str.getBytes("gbk"), "utf-8")把数据从gb2312转换成utf-8
所以要清楚知道str.getBytes("gbk")这里的str字符本来是不是gbk编码的很重要,如果它是iso8859-1呢,那就会出错了。也许你不小心弄混了。就会时对时错了。
记住:
在.java中声明的String变量的字符编码,是与当前文本编辑器使用的字符编码一致
例如,在MyEclipse中,我设置的默认编码为GBK
则字符就是gbk编码格式。
‘捌’ java程序中文汉字会乱码
首先要加一个utf-8过滤器以过滤post提交乱码问题;
再在tomcat的server.xml文件中配置<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
处理get提交乱码问题;
注意在用了这2个配置后就不要再在程序中用getBytes对参数进行转码了
‘玖’ 在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方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
‘拾’ java中文乱码问题
server.xml
tomcat配置文件
修改
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
试试看..