写下这个标题,我自己先笑了下, 口气有些大了. 不过,这么大的一个标题,倒是反映了我当时心情, 也就是我解决乱码问题过程中一个关键的转折点. 这里围绕这个关键转折点把当时的情况记录一下来.
前面在"乱码(三): 问题的出发点
"中, 根据分析得出解决问题的用力点应该是"/etc/sysconfig/i18n"这个文件. 但折腾了些时间后(围绕这个i18n改动时的问题记录详见"乱码(二): Linux下/etc/sysconfig/i18n究竟是干什么用的?
"). TMD怎么还不行呢? 但问题还是要解决的,得另找突破口.
.............
一段搜索后, 对编码问题也有了个相对深刻的认识, 也跌跌撞撞地想到了Java中的Charset类, 于是习惯性地看源码,发现两个让眼前一亮的方法: defaultCharset和availableCharsets.
写代码试它一试.
availableCharsets方法没什么新奇的,顾名思义,用它可以得到当前Java所支持的字符集.
写体验defaultCharset方法代码时,从它输出结果上联想到一个跟当前乱码问题相关的一点: 这个方法返回当前JVM默认的字符集(通常是操作系统的字符集), 那不是通过这个方法就可以看出乱码问题"元凶"Linux所有字符集了?!! 因为从"乱码(二): Linux下/etc/sysconfig/i18n究竟是干什么用的?
"里结果发现单独改i18n文件好像是起作用. 而乱码问题的最终落脚点是把字符串按操作系统使用的字符集来组装, 这样操作系统才能显示出人能读懂的文字来.
基于这样的思考,赶紧把实验defaultCharset方法的Java例子传到Linux上. 于是有了"乱码(二): Linux下/etc/sysconfig/i18n究竟是干什么用的?
"里的图片对比信息!!!
又"鬼使神差"地想到: 既然改i18n文件不行, 那何不在Linux上Tomcat启动时利用"export
LC_ALL=zh_CN.GBK"命令对字符集做下修改呢? 再在文件上传的的相应代码里加上'new
String(uploadDir.getBytes(),"GBK");',这样不就两头凑地解决了问题??
赶快行动, 成功了! 上传的文件名不再乱码了!
再回过头看整个过程, 虽然最终代码中没有体现出defaultCharset方法, 但它却恰恰成了"撬到地球的支点", 没有它的牵线搭桥就不会很快想出两头凑的解决方案来.
分享到:
相关推荐
很全面的代码介绍,很完整的乱码解决说明,让你一目了然,值得研究
乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决
RTC解决中文乱码 d := RtcStringToBytes(read); Memo3.Lines.Text := Response.HeaderText; // 显示下http头 if TRegEx.IsMatch(UpperCase(string(PAnsiChar(d))), 'GBK|GB2312') then Memo1.Lines.Text := ...
asp.net默认的编码是UTF-8 js文件里的编码也是UTF-8 当你要在aspx页面上进行传中文参数时会出现乱码 asp.net中文乱码:asp.net(C#)中文乱码问题 接收参数页-----> 传送参数页----->
下面小编就为大家带来一篇读写json中文ASCII乱码问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
只有两个文件。 ...经过从网上上收集的资料,我也是这么解决。...第一:修改邮件内容乱码: 第二:修复邮件标题乱码 第三:修复其他地方乱码 来源网页:http://www.lgocl.com/blog/post-46.html
4,乱码问题:sybase使用latin1字符集的时候,c#中读取字符串会是乱码,进行如下转换就行: System.Text.Encoding.GetEncoding("gbk").GetString( System.Text.Encoding.GetEncoding("latin1").GetBytes( s );
6:修改读取S57海图数据中文属性值乱码 e:\3rdPart\gdal-1.9.2\ogr\ogrsf_frmts\s57\s57reader.cpp line 883 // Add By liml 2013-04-25 Convert UCS-2 to Utf-8 const char* pachBuffer = poRecord->...
welogic struts2文件下载中文件名乱码:在tomcat中是好的哦
解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...
get提交中文乱码 地址重写中文乱码 jsp url中文乱码四种解决方式
问题:部署的webapp,日志内容显示乱码现象:日志信息在本地测试显示正常,部署到azure后显示乱码问题原因:因为Azure是一个英文环境,所以在使用log4
源代码中的中文因为编码问题,在eclipse等开发环境中显示为乱码。找到的次工具可以“批量”处理转换,解决乱码问题:将GBK编码转换为UTF8编码
解决Source Insight 等中文乱码问题:在Linux下执行此脚本,可以将 utf-8 或 gkb 等编码文件(可任意添加) 转换为 gb18003(可任意修改为其他) 编码文件。 特点:此脚本会递归地转换所在目录及子目录下的所有 .c...
编程或代码编辑工具遇到乱码不用慌用乱码查看器帮你忙
我当前调试的是kettle 5.4.0.1版本,修复job中发送邮件时候中文乱码问题: 替换 data-integration\lib\kettle-engine-5.4.0.1-130.jar 这个jar包下 data-integration\lib\kettle-engine-5.4.0.1-130.jar\org\...
mysql数据库备份工具,它的优势在于: 1:绝对不会出现乱码 2:可以加密输出 3:支持以下数据库对象导出: 表,视图,存储过程,触发器等
1.json中文乱码 2.利于jquery判断复选框checkbox选中的个数 4.在js中访问json格式的数组或对象
多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...
现象:数据库中存储的内容不是乱码,但是用报表查询出来后,页面中汉字显示为乱码。 原因:数据库取数时没有转码 解决方法:在WEB-INF/reportConfig.xml 文件中的dataSource 节点,设置转码。