乱码

Intellij IDEA控制台乱码解决方法

偶尔善良 提交于 2019-12-05 10:55:18
在网上搜索Intellij IDEA控制台乱码解决方法,搜索到很多,反正都太乱,所以写一篇简单快捷的,直达目的。 WINDOWS平台 在“计算机”-》“属性”-》“高级系统设置”-》“高级”-》“环境变量”-》新建-》 变量名: JAVA_OPTS 变量值: -Dfile.encoding=UTF-8 重启Intellij Idea 即可!:stuck_out_tongue_closed_eyes: 当然重要的是您的项目和文件都是UTF-8类型的。 来源: oschina 链接: https://my.oschina.net/u/130461/blog/531867

Servlet一次乱码排查后的总结

做~自己de王妃 提交于 2019-12-05 05:58:43
由来 在写一个小小的表单提交功能的时候,出现了乱码,很奇怪request上来的参数全部是乱码,而从数据库查询出来的中文显示到页面正常,锁定肯定是request对象那里出了问题。后来经过排查,发现是我封装的框架中出了问题,总结为在setCharacterEncoding方法之前,调用了getParameter方法,导致字符集改变失败。没看过Tomcat实现Servlet的源码,貌似是一旦调用getParameter方法Request的参数就会全部被解析,从而再调用setCharacterEncoding就无效了。 原理解析 其实编码问题本质还是两点: 浏览器在封装Http请求的时候的编码和服务器在解析Http请求编码不一致 服务器返回数据的时候编码和浏览器解析不同。 那么我们就从这两点入手解析。 浏览器请求 在点击提交表单的那一刻,浏览器把表单内容封装成一个Http请求,数据通过 a=1&b=2 这样的形式直接请求服务器,表单值会被浏览器最一次urlencode,对于不同的请求方式编码不同: Get和Post请求 浏览器会读取页面的编码(页面编码会在Content-type头中体现),用此编码对表单值做urlencode,那么到服务器的编码方式就是你Content-Type里的编码。很多通过JS提交表单为了规避浏览器的urlencode带来的编码混淆

在Redmine中查看txt文档出现乱码的解决方法

醉酒当歌 提交于 2019-12-04 20:19:51
在使用Redmine的过程中发现,查看txt的附件时中文显示为乱码,但是将该附件下载后打开显示正常。 问题原因如下: 我们在操作系统创建的txt文本文档默认的是ansi编码格式,而在整个Redmine中采用的都是UTF-8编码格式,所以上传后在Redmine中直接查看会显示乱码。 解决方法: 1.把txt附件下载下来查看 2.上传utf-8编码格式的txt附件 3.修改源代码。 修改Redmine安装目录下 app\controllers\attachments_controller.rb文件 在下面这行代码后面 @content = File.new(@attachment.diskfile, "rb").read 增加 @content = Iconv.new("utf-8","gb2312").iconv(@content) 保存文件,重启Redmine服务 来源: oschina 链接: https://my.oschina.net/u/1030976/blog/129510

PL/sql导入sql文件中文乱码解决办法

牧云@^-^@ 提交于 2019-12-03 11:21:36
从别处接过来的pl/SQL导出文件XX.sql文件,用pl/sql工具中的 import 功能导入到本地库后,发现表的comment注释中文乱码,可通过以下办法解决,特记录如下: 1)进入pl/sql安装目录:我的目录是"E:\Program Files (x86)\PLSQL Developer\" 2)在目录内新建一个startplsql.bat文件,文件内容为 set ORACLE_HOME=E:\app\Again\product\11.2.0\dbhome_1 set PATH=E:\app\Again\product\11.2.0\dbhome_1 set TNS_ADMINE=E:\app\Again\product\11.2.0\dbhome_1\network\admin set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 start plsqldev.exe 3 ) 打开Uedit文本编辑软件,新建一个文本,选择【视图】-【查看代码页】,选择UTF-8并保存,XX.sql文件中内容复制到该页,并另存为ZMXX.sql文件,另存弹出框,下拉选择格式为UTF-8 4)执行startplsql.bat文件,自动启动pl/sql,在执行import导入工具导入ZMXX.sql即可。 来源: oschina 链接: https://my

字符集与编码(六)——getBytes方法及乱码初步

99封情书 提交于 2019-12-03 09:45:46
在 前一篇 里我们谈了Unicode的代码单元及string.length,现在接着前面的讨论继续谈string.getBytes()方法并对乱码的产生作初步分析。 string.getBytes方法 首先声明一下,以下讨论如无特别说明,均是在Java语言环境下。如果你用的不是java,我只能说声抱歉。但另一方面,我相信无论是何种语言或平台,也必然有类似的方法及类似的处理,而其中的原理也必将是相通的,当然了,具体到细节上则可能会有些差异。 带参数的调用 首先,string.getBytes它可以带参数去调用,这是最简单的情形,如下 @Test public void testGetBytesGbk() throws UnsupportedEncodingException { String str = "hello你好"; assertThat(str.getBytes("GBK").length).isEqualTo(9); } 因为GBK是变长编码,对ASCII字符采用一字节,汉字则是两字节,所以总的长度是1×5+2×2=5+4=9,所以测试是通过的。 注:本文代码均已经上传到开源中国oschina的git.oschina.net上,具体代码见 http://git.oschina.net/goldenshaw/java_code_complete/blob/master

win7下eclipse项目移到linux(ubuntu)下乱码

狂风中的少年 提交于 2019-12-03 05:33:48
把windows下面的工程导入到Linux下的Eclipse中,由于Windows下用的是GBK (Windows下的Eclipse 默认会去读取系统的编码,所以Widnwos下的Eclipse的编码为GBK),而 Ubuntu 默认是不支持GBK编码的。 所以,首先我们要先让 Ubuntu支持GBK: 1. 首先要修改 /var/lib/locales/supported.d 用的命令是 sudo vim /var/lib/locales/supported.d/local (要用管理员权限) 在最后加入 zh_CN.GBK GBK zh_CN.GB2312 GB2312 这两句话,然后保存 退出 2.配置Ubuntu 让它支持GBK编码 命令如下: sudo dpkg-reconfigure --force locales 看到下面信息,就说明完成了 3.修改eclipse配置 首先选择eclipse菜单栏中的Windows->Preferences, 然后选择General下面的Workspace, Text file encoding下选择Other ,手动输入GBK,点apply。OK,你的eclipse不再显示乱码了快去看看吧 来源: oschina 链接: https://my.oschina.net/u/1377657/blog/183952

mysql中利用jdbc插入中文数据出现乱码!

纵然是瞬间 提交于 2019-12-02 22:10:42
现象: 用JDBC将中文字段插入MySQL数据库中,然后打开表发现,那些字段都是"??",或者是乱码. 原因: 1.由于创建数据库时指定默认的编码方式为utf8。 2.Client端字符集为gbk. 3.进行jdbc链接时使用了不匹配的字符集。 解决办法: 1.创建数据库时将数据库的缺省字符集指定为gbk。建议用工具(如phpmyadmin等) 2.修改Client默认字符集为gbk。windows下在mysql安装目录下找到my.ini,将里面的default-character-set=utf8改为default-character-set=gbk,然后重起mysql服务即可将数据库默认字符集改为gbk.此时应该在mysql命令行用\s命令检查一下看是否改好了。 3.修改jdbc的链接,将原来的 jdbc:mysql://localhost:3306/demo 改为 jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=GBK 来源: oschina 链接: https://my.oschina.net/u/727370/blog/138704

DBeaver链接Oracle数据库中文显示乱码

我是研究僧i 提交于 2019-12-01 15:20:19
1. 背景 DBeaver 是一款不错的开源数据库客户端 http://www.oschina.net/p/dbeaver ,基本的增删改查足够用了。但在链接Oracle时,由于字符编码问题,容易产生乱码,现可以使用Druid来解决这个问题,可参考 使用Druid解决Oracle Thin驱动中文乱码 ,下面是详细配置。(P.S. 不止DBeaver和Oracle,其他客户端和数据库的乱码问题都可通过Druid用类似的方式来解决) 2. 配置 2.1. Driver配置 从Toolbar>Database>Driver Manager,新建一个驱动。 配置驱动内容,主要如下,其余配置可任意指定。 驱动类 com.alibaba.druid.proxy.DruidDriver 使用Druid 链接URL jdbc:wrap-jdbc:filters=encoding:name=dbeaver:jdbc:oracle:thin:@{host}[:{port}]/{database} “filters=encoding”给Druid配置编码过滤器,用于编码转化; {host}、{port}和{database}则是占位符,创建连接时会用到 默认端口 1521 Oracle的默认端口 类库 /path/to/druid.jar /path/to/ojdbc14.jar 类库的路径

JavaWeb多种乱码解决方法

南笙酒味 提交于 2019-12-01 06:47:19
一、Servlet输出乱码 1. 用servlet.getOutStream字节流输出中文,假设要输出的是String str ="***是中国的,无耻才是日本的"。 1.1 若是本地服务器与本地客户端这种就不用说了,直接可以out.write(str.getBytes())可以输出没有问题。因为服务器中用str.getBytes()是采用默认本地的编码,比如GBK。而浏览器也解析时也用本地默认编码,两者是统一的,所以没有问题。 1.1 若服务器输出时用了, out.write(str.getBytes("utf-8"))。而本地默认编码是GBK时(比例在中国),那么用浏览器打开时就会乱码。因为服务器发送过来的是utf-8的1010数据,而客户端浏览器用了gbk来解码,两者编码不统一,肯定是乱码。当然,你也可以自己将客户端浏览器的编码手工调用下(IE菜单是:查询View->编码encoding->utf-8),但是这种操作很烂,最好由服务器输出响应头告诉,浏览器用哪种编码来解码。所以要在服务器的servlet中,增加response.setHeader("content-type","text/html;charset=utf-8"),当然也可直接用简单的response.setContentType("text/hmtl;charset=utf-8")。两种的操作是一样一样的。

使用Druid解决Oracle Thin驱动中文乱码

断了今生、忘了曾经 提交于 2019-11-30 21:44:40
1. 问题 使用Oracle Thin驱动比较麻烦的一个问题是容易出现中文乱码,且Thin驱动不像MySQL驱动那样能在链接字符串中指定编码。 2. 思路 最直接的解决方案是对所有数据库中读出的字符串进行编解码,但这么做需要编码处理所有的字符串,很麻烦。 // 编码: String newString = new String(oldstring.getBytes(clientEncoding),serverEncoding); // 解码: String newString = new String(oldstring.getBytes(serverEncoding),clientEncoding); 更好的方式是使用JDBC的代理,在通过JDBC返回和写入字符串前进行编解码操作,把所有字符串的处理收拢到一起。 3. 解决 目前能可靠使用且一直有在维护和开发的JDBC代理有@wenshao 的 Druid ,详情可点击查看,在此不多做介绍。Druid本身实现了Filter-Chain机制,能对JDBC进行灵活的扩展,并内置了一个用于进行字符编码转换的Filter。 通过Druid即可很方便的解决Oracle编码问题 ,无需重复造轮子。 使用Druid,需要同时引入Druid和数据库驱动的依赖,Maven配置如下。 <dependencies> …… <dependency>