『壹』 如何解决java项目中的中文乱码
设置工作空间的编码:
编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置,每一个项目都会受到这个设置的影响。点击菜单栏中的窗口(Window)— —选项(Preferences)。
点击常规(General)— —工作空间(Wordspace),然后在右侧的文本文件编码格式(Text file encoding)中选择你想要设置的编码格式,系统默认的格式为GBK。
设置项目的编码:
如果其他的项目中不存在乱码问题,只是个别项目显示时出现乱码,那么我们不需要设置工作空间的编码,只需要修改项目的编码即可。
选中项目后,右键点击,在弹出的菜单中点击属性(Properties)。
在弹出的属性窗口中,选择资源(Resource)— —点击选择Other(其他),然后选择你想要的编码格式。
设置单个文件的编码:
只是个别文件出现了乱码,那么设置个别文件的编码格式就可以解决问题了。选中有乱码的文件,然后点击右键。
在弹出的菜单中选择属性(Properties)。
在弹出的属性窗口中选择资源,点击Other(其他)后设置个别文件的编码方式
『贰』 java爬虫一段话里的部分字符乱码解决
1. 网络爬虫乱码的原因。
源网页的编码与抓取后的编码转换不一致。如果源网页是gbk编码的字节流,程序在我们抓取后直接用utf-8编码输出到存储文件,这必然会造成乱码,即当源网页编码与程序抓取后直接处理编码一致时,就不会出现乱码,然后统一字符编码后也就不会出现乱码。注意区分源网络代码A,程序B直接使用的代码,统一转换字符的代码C。
2. 是网页的服务器端代码。
B.捕获的数据原本是字节数组,由A编码,只有B=A才能保证不会出现乱码;否则,当字符集不兼容时,就会出现乱码字符。这一步常用于测试。
c、统一转码是指在获得网页的原始编码A后进行统一编码,主要是将每个网页的数据统一成一种编码,往往首选字符集较大的utf-8。
每个网页都有自己的代码,比如gbk,utf-8,iso8859-1,日本jp系统代码,西欧,俄语等等。爬行时,所有类型的代码都将被扩展。有的爬虫只是简单的识别网页,然后统一编码,有的则直接按照utf-8统一处理,不需要判断源网页,显然会造成乱码。
3. 乱码的解决方案。
根据原因找到解决办法很简单。
1) 确定源网页的代码a。
代码a通常位于网页的三个位置,即httpheader的内容、网页的元字符集和网页标题中的文档定义。获取源网页代码时,依次判断这三部分数据,从头到尾优先级相同。
理论上这是对的,但是国内有些网站不符合标准。比如写出来的gbk其实是utf-8,有的写出来是utf-8,其实是gbk。当然这是几个网站,但是确实存在。因此,在确定网页编码时,应该对这种特殊情况给予特殊处理,如中文检查、默认编码等策略。
在另一种情况下,如果以上三种都没有编码信息,一般使用第三方的网页编码智能识别工具,如cpdetector。原理是通过统计字节数组的特性来计算实际编码,有一定的准确率,但是我发现在实践中准确率还是很有限的。
但是综合以上三种编码确认方法后,中文乱码的问题几乎可以完全解决。在我的基于nutch1.6的网络爬虫系统中,经过统计,编码准确率可以达到99.99%,这也证明了上述方法和策略的可行性。
2) 程序通过代码b还原源网页数据。
显然,这里的B应该等于a,在java中,如果源网页的字节数组是source_byte_array,就会转换成stringstr=newstring(source_byte_array,B)。即这些字节数组对应的字符被正确编码显示在内存中,此时打印结果正常。此步骤通常用于调试或控制台输出测试。
3) 统一转码。
网络爬虫系统中有很多数据源。如果无法使用数据,它将被转换为其原始数据,如果这样做是浪费的。所以一般爬虫系统要对抓取的结果进行统一编码,做到一致,使用方便。此时,在(2)的基础上,可以进行统一的编码转换,在java中的实现如下。
源网页的字节数组是source_byte_array。
转换为普通字符串:stringnormal_source_str=newstring(source_byte_array,c)。这时候可以直接用javaapi存储,但是字符串往往不直接写。因为一般爬虫存储是将多个源网页存储在一个文件中,所以要记录字节偏移量,所以下一步。 再将得到的str转换为统一的编码C格式的字节数组,则byte[] new_byte_array=normal_source_str.getBytes(C)即可,此时即可用java io api将数组写入文件,并记录相应的字节数组偏移量等,待真正使用时,直接io读取即可。
爬虫过程不仅会存在乱码问题,还会存在网站爬取涉及法律、IP受限,爬取行为受限等等问题,这个时候就需要不断去解决这些问题。
『叁』 java打印中文乱码
java控制台中文输出乱码,已经注意文件格式和控制台格式了?不要用系统写字板notepad保存UTF8的Java源文件。M$的UTF8是UTF8withBOM,而Java编译器识别的UTF8是UTF8withoutBOM,两者不兼容。
eclipse中java中文控制台输出的这种乱码解决方式:(1)打开eclipse或myeclipse,点击run-》runconfigurations如图提示,改成UTF-8,有的eclipse或myeclipse有可能需要gbk的形式,不同形式改成不同的编码,尝试一下即可。
设置单个文件的编码:只是个别文件出现了乱码,那么设置个别文件的编码格式就可以解决问题了。选中有乱码的文件,然后点击右键。在弹出的菜单中选择属性(Properties)。
java中输入输出中文乱码,怎么办?1、在代码区域右键-runas-runconfigurations-common(右侧)-consoleencoding如果出现此错误,此时的编码格式应该是UTF-8,选择Other,这时可能没有GBK选项,如果没有,则执行之后操作。
2、读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。
3、java文件读取的时候有中文就很出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
Java程序输出txt文件内容时中文乱码怎么解决?
解决办法:在代码区域右键-runas-runconfigurations-common(右侧)-consoleencoding如果出现此错误,此时的编码格式应该是UTF-8,选择Other,这时可能没有GBK选项,如果没有,则执行之后操作。
txt文档一般是GBK编码格式的,你可以将它另存一下,改为Utf-8格式,你也可以将你的开发工具调成GBK编码格式,总之就是将你的开发环境的编码格式与你要读取的txt文件的编码格式调成一致的。
读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。
把txt文件重新另存为时选择编码为与编辑器IED的编码一致,比如我IntellijIDEA的编辑器右下角显示为utf-8,然后把要读取的txt文件另存为的时候编码选项选择utf-8,再次运行程序时,就能显示中文。
只是个别文件出现了乱码,那么设置个别文件的编码格式就可以解决问题了。选中有乱码的文件,然后点击右键。在弹出的菜单中选择属性(Properties)。
eclipse中java中文控制台输出的这种乱码怎么解决解决方法其实很简单,设置一下编码就行了。打开Eclipse,右键点击项目文件,然后点击最下方的属性。
进行再textfileencoding进行勾选上default的选项即可。
这不是乱码,原因很明显,索引String数组错误,将最后一个for循环里面的zfc改成zfc[j]即可。
改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式。
为什么我用sublime写java代码时打印中文打印出来是乱码?请问大神编码...1、点击“preferences”菜单,选择“BrowsePackages”打开插件所在目录,找到“java”这一项,双击打开。后缀名为sublime-build的文件是编译程序的命令,找到JavaC.sublime-build,拖入SublimeText2打开进行编辑。
2、产生原因:因为这个开源项目的默认字符编码不对,所以控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误(这个问题的解释可以在搜索引擎找到)。
3、SublimeText软件中,用这款代码编辑器打开某个GB2312和GBK编码的文件时,大家可能会遇到中文显示乱码的情况,这是因为SublimeText软件默认的不支持GB2312和GBK编码格式,想要它能够正常显示中文就需要在软件中安装一个中文插件包。
4、字符编码问题:ide下设成utf-8命令行下检查字符页设置对不对。修改cmd窗口字符编码为UTF-8,命令行中执行:chcp65001切换回中文:chcp936这两条命令只在当前窗口生效,重启后恢复之前的编码。
5、SublimeText2目前还不支持gbk编码,UTF-8完美支持。因此,你的文件出现中文乱码应该是打开gbk编码的文件,你可以用系统的记事本直接另存为UTF-8编码的。
6、java文件读取的时候有中文就很出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
『肆』 java中文乱码问题要怎么解决
解决Java中文乱码问题,先从其根源原因出发。乱码出现的原因是Java代码使用的是UTF-8编码,然而在某些情况下,如CMD环境,其默认编码为gbk,编码格式不一致导致了乱码现象。
为避免此类问题,建议采取如下措施:首先,避免在类名中使用中文,这是避免乱码问题的根本所在。其次,在进行Java程序调试时,尽量使用IDE环境,如Eclipse或IntelliJ IDEA,而避免直接在CMD中运行程序,这样可以降低出现乱码的可能性。最后,尽管在某些开发阶段可能会因为习惯等原因在代码中使用中文,但在正式的项目开发中,应当严格避免使用中文,以确保程序的稳定性和兼容性。
『伍』 win7系统下Java在cmd命令下输入中文显示乱码如何解决
近日有用户到本站反馈说碰到这样一个问题,就是在cmd命令下,java输入中文显示乱码,碰到这样的问题该怎么办呢,本文就给大家讲解一下win7系统下Java在cmd命令下输入中文显示乱码的具体解决方法。
先看java代码:
先看乱码效果:
解决方案:
1、开始计算机鼠标反键(鼠标右键)属性;
2、高级系统设置;
3、环境变量;
4、系统变量;
5、新建。然后输入:“JAVA_TOOL_OPTIONS”变量,值为“-Dfile.encoding=UTF-8”;
6、然后确定、确定、在确定后。新开命令行窗口,再次输入javac命令。