解决各种tomcat中文乱码问题

解决各种tomcat中文乱码问题,第1张

tomcat出现中文乱码问题有以下几种情况:

乱码原因 :这是由于windows下的cmd的默认编码是GBK编码,Tomcat控制台默认输出设置为UTF-8编码

解决方法

解决办法

先检查tomcat下conf/loggingproperties配置文件

查看是否ConsoleHandlerencoding=utf-8,如果是则说明tomcat编码没有问题,出问题的是idea编码,如果不等于utf-8,则改为utf-8一般情况下此时可以正常输出tomcat日志信息。

requestgetParameter()打印出来是乱码

原因一 :idea控制台显示编码问题,idea的控制台显示使用的jvm默认编码为win系统的GBK编码,更改jvm编码格式为UTF-8

解决办法:

乱码原因: 服务器发给浏览器的数据默认是按照ISO-8859-1编码,浏览器接收到数据后按照默认的字符集进行解码后显示,如果浏览器的默认解码字符集不是ISO-8859-1,就出现乱码。

ftp服务目录下的文件出现乱码,多数是因为中文编码不统一导致的,多见于第三方的ftp服务软件,比如server-u,另外跨平台访问也会出现这种情况,比如通过Linux访问windows上的ftp服务器。解决的方法可以参考如下解决方法。

1、ftp服务目录下的文件,统一使用英文名称 ,不要使用中文名称。

2、设置好编码,以server-u为例说明:

1)、打开Serv-U控制台,点击“限制和设置”--“为域配置高级FTP命令设置和行为”。

2)、在FTP设置中找到OPTS UTF8命令,右击禁用此命令。

3)、点击下面的“全局属性”。

4)、在出来的FTP命令属性选项卡中,“高级选项”里,把“对所有收发的路径和文件名使用UFT-8编码”前面的钩去掉!

出现这种情况一般都是由于win10下部分字体出现问题导致。

具体解决方法如下:

1、打开浏览器,并打开开发人员工具(使用系统自带的edge,按f12);

2、点击选择元素图标,之后点选乱码字体;点选网页内乱码字体这一行;

3、在开发人员工具内右侧的样式栏,找到继承自body下的,font-family;

4、取消前面的对勾,会发现,乱码字体变化了,这就证明,就是该行所使用的字体有问题,选择该行,一项一项删除,就会定位到有问题的字体上(本人是Arial字体有问题),搜索并下载该字体,右键安装;

5、关闭浏览器重新打开页面,显示正常。

写入文件的时候设置下编码格式即可,之后读取就不会是乱码的。

可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:

OutputStreamWriter pw = null;//定义一个流

pw = new OutputStreamWriter(new FileOutputStream(“D:/testtxt”),"UTF-8");//确认流的输出文件和编码格式,此过程创建了“testtxt”实例

pwwrite("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write

pwclose();//关闭流

备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

这类乱码是由于在Windows注册表中,关于字体部分配置不正常造成的,即使你用内码翻译软件处理也不会消除这类乱码。

出现码的消除方法 :

方法一:找一台与你的Windows版本相同且显示正常的机器,依下列步骤进行:

1在正常机器上选择“开始”→“运行”,在对话框中键入“regedit”,打开注册表编辑器;

2请你将光标定位到“HKEY_LOCAL_MACHINE\ system\CurrentControlSet\Control\Fontassoc”,然后选择“注册表”→“导出注册表文件”,再选择“分支”,导出该分支注册表信息到文件(如ZTREG)中;

3把ZTREG文件拷贝到你那显示乱码的机器上,方法是:在显示乱码的机器上运行“regedit”,打开注册表编辑器,选择“注册表”→“导入注册注册表”,把ZTREG文件导入注册表中即可。

方法二:如果你找不到一台与你的Windows版本相同且显示正常的机器,则需要手工恢复字体部分的注册表项,其步骤是:

1首先在显示乱码的机器上选择“开始”→“运行”,在对话框中键入“regedit”,打开注册表编辑器;

2选择“HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Fontassoc”,正常情况下,会有Associated DeaultFonts、Associated CharSet两个文件夹,其正确的内容应是:

子目录内容

Associated DefaultFonts

AssocSystemFont=“simsunttf”

FontPackageDecorative=“宋体”

FontPackageDontcare=“宋体”

FontPackageModern=“宋体”

FontPackageRoman=“宋体”

FontPackageScript=“宋体”

FontPackageSwiss=“宋体”

AssocSystemFont=“simsunttf”

FontPackage=“新宋体”

FontPackageDecorative=“新宋体”

FontPackageDontcare=“新宋体”

FontPackageModern=“新宋体”

FontPackageRoman=“新宋体”

FontPackageScript=“新宋体”

FontPackageSwiss=“新宋体”

3当出现汉字乱码时,上述两个文件夹中的内容就会不完整,有的没有Associated CharSet文件夹或其中的内容残缺不全;有的Associated DefaulFonts下的内容残缺。如果遇到这种情况怎么办呢?其实你只要打开注册表编辑器,在“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Fonassoc”下,根据以上的正确内容恢复即可。

背景如果Ubuntu Server在安装过程中,选择的是中文(很多新手都会在安装时选择中文,便于上手),这样在完成安装后,系统默认的语言将会是中文zh_CNUTF- 8。但问题是我们安装的是服务器,只需要运行命令行终端,但在终端下无法正常的显示默认中文编码zh_CNUTF-8。由此有以下方法解决

使用SecureCRT客户端软件

  直接修改虚拟终端界面配置项目中的字体编码为UTF-8即可。修改方法如下:

选项->会话选项->外观->字符编码->uft-8

修改以后显示中文如下图所示:

  原理其实很简单,Ubuntu Server默认的还是zh_CNUTF-8汉字编码,在服务器终端上面还是无法识别汉字,但是在虚拟终端中,经过“编码修正”以后就能够正确显示出来。相当于服务器终端将内容传递给客户端软件,客户端软件通过相应的编码方式进行解码显示中文。因为SecureCRT是安装在中文windows环境下的,而这个环境下的默认编码是GBK,可以识别汉字。那么如何解决服务器端中文乱码的问题呢,其实最好的方法就是干脆将语言环境设置成英文好了。

修改Ubuntu的配置文件/etc/default/locale

将原来的配置内容

LANG="zh_CNUTF-8"

LANGUAGE="zh_CN:zh"

修改为

LANG="en_USUTF-8"

LANGUAGE="en_US:en"

再在终端下运行:

$ locale-gen -en_US:en

注销或重启后,Ubuntu Server真正服务器实体终端就恢复成了英文的语言环境。所以,此方法不是真正意义上的中文化,而是恢复英文的默认编码

修改完以后,再次查询ip地址,可以发现就是英文环境了。

因为数据在计算机底层的存储方式。

以二进制的方式存在,010101我们看到的都是字符或者汉字的形式每个应用都有自己的字符集,这个字符集就可以看成是一个字典,将二进制的内容转换为字符内容。

更多原因

乱码是因为解码方式和编码方式不一致导致的,这句话本身没有错,但同样这句话的本身就是把乱码概括了而已,它并不能帮助你理解乱码。

因为服务器和客户端浏览器对数据的编码不同,也就是字符集不同,双方进行沟通的时候,就会出现乱码,浏览器安装在中文操作系统下,编码一般为GBK服务端是外国人开发的,它默认的字符集是ISO-8859-1。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 解决各种tomcat中文乱码问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情