java在linux下创建文件名字乱码,插入数据库没有乱码

开源中国首席打酱油啊哎滴 发布于 2014/09/23 16:47
阅读 2K+
收藏 0

linux上的语言环境是zh_cn.UTF-8

java也是utf-8的

mysql语系也是utf-8

神奇的是创建的文件 文件名乱码,存入mysql的文件路径却不是


加载中
0
牛奋Debug
牛奋Debug
你用的连接Linux的的语言呢?
开源中国首席打酱油啊哎滴
开源中国首席打酱油啊哎滴
回复 @baolongf : SecureCRT,可以排除这个,因为有中文的做参照,部分是乱码
牛奋Debug
牛奋Debug
回复 @BirdZhang : 用什么客户端连接的linux呀? ssh XshellPortable 还是什么? 看看这些客户端设置的语言环境是什么
0
lee_jun
lee_jun
可能是java默认了GBK吧= =。创建文件的时候那个文件名String先用utf-8编码转换一下
0
lee_jun
lee_jun

String s= new String(filename.getBytes() ,"UTF-8");

File f  = new File(s);

if(!f.exists()) f.makedirs();

开源中国首席打酱油啊哎滴
开源中国首席打酱油啊哎滴
回复 @lee_jun : 设定的是utf8
lee_jun
lee_jun
回复 @BirdZhang : mysql的数据库有自己的编码的。你看你设定的是什么
开源中国首席打酱油啊哎滴
开源中国首席打酱油啊哎滴
基本找到问题了。unix默认编码是iso8859-1,然后我们linux服务器的编码是utf-8,所以乱码了。唯一想不通的是同一段string往数据库里插就不是乱码。。。mysql有自动转换的功能?
0
s
shylock
如果只是“”看到乱码,那应该是连接的客户端的问题
0
Feng_Yu
Feng_Yu
SecureCRT默认的字符集是ASCII,改为utf-8即可
返回顶部
顶部