java默认编码的问题

yiyefangzhou24 2020-07-16 03:19:49
做一个项目,是一个OA管理系统。

用java读取windows文件列表,发现无论是中文版(gbk编码)还是英文版,返回的文件名都是utf8编码,和windows系统的默认编码无关。

1、想问问java大牛,java的文件,程序执行(返回)是不是都是java经过utf8编码过的?
2、linux系统也是这样的情况码?
...全文
5759 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
临世驻年 2020-07-20
  • 打赏
  • 举报
回复
系统具有通用性,会自动转换unicode
qq_39936465 2020-07-16
  • 打赏
  • 举报
回复
引用 8 楼 yiyefangzhou24 的回复:
对于linux平台此法则也同样适用吗?
因为unicode是国际统一标准,所以不管什么平台一般都会支持。
yiyefangzhou24 2020-07-16
  • 打赏
  • 举报
回复
引用 6 楼 qq_39936465 的回复:
[quote=引用 5 楼 yiyefangzhou24 的回复:] 貌似数据库读写的时候,一些string操作要指定编码,否则就是乱码
数据库默认编码不一定utf-8,而且数据库不是操作系统,不需要提供转码功能,所以你在获取数据时需要和数据库的编码匹配,你可以设置数据库的默认编码和你所用的编码匹配。[/quote]对于linux平台此法则也同样适用吗?
qq_39936465 2020-07-16
  • 打赏
  • 举报
回复
你觉得操作系统不需要指定编码,我早说过了,操作系统为了通用性,提供了自动转换unicode功能。
qq_39936465 2020-07-16
  • 打赏
  • 举报
回复
引用 5 楼 yiyefangzhou24 的回复:
貌似数据库读写的时候,一些string操作要指定编码,否则就是乱码
数据库默认编码不一定utf-8,而且数据库不是操作系统,不需要提供转码功能,所以你在获取数据时需要和数据库的编码匹配,你可以设置数据库的默认编码和你所用的编码匹配。
yiyefangzhou24 2020-07-16
  • 打赏
  • 举报
回复
引用 3 楼 qq_39936465 的回复:
[quote=引用 楼主 yiyefangzhou24 的回复:]做一个项目,是一个OA管理系统。 用java读取windows文件列表,发现无论是中文版(gbk编码)还是英文版,返回的文件名都是utf8编码,和windows系统的默认编码无关。 1、想问问java大牛,java的文件,程序执行(返回)是不是都是java经过utf8编码过的? 2、linux系统也是这样的情况码?
java如果未指定编码,默认就是utf-8,除非你指定编码。windows程序一般都是支持unicode,不管系统默认什么编码都能转换成utf-8。[/quote] 貌似数据库读写的时候,一些string操作要指定编码,否则就是乱码
yiyefangzhou24 2020-07-16
  • 打赏
  • 举报
回复
引用 3 楼 qq_39936465 的回复:
[quote=引用 楼主 yiyefangzhou24 的回复:]做一个项目,是一个OA管理系统。 用java读取windows文件列表,发现无论是中文版(gbk编码)还是英文版,返回的文件名都是utf8编码,和windows系统的默认编码无关。 1、想问问java大牛,java的文件,程序执行(返回)是不是都是java经过utf8编码过的? 2、linux系统也是这样的情况码?
java如果未指定编码,默认就是utf-8,除非你指定编码。windows程序一般都是支持unicode,不管系统默认什么编码都能转换成utf-8。[/quote] 未指定编码默认是utf8指的是哪些内容,我试了一下,执行命令返回,文件操作返回貌似都是utf8,但是数据库读写需要指定编码 另外有个重要的问题请教,对于linux平台也是这样的吗?程序员也没必要关心操作系统编码?
qq_39936465 2020-07-16
  • 打赏
  • 举报
回复
引用 楼主 yiyefangzhou24 的回复:
做一个项目,是一个OA管理系统。 用java读取windows文件列表,发现无论是中文版(gbk编码)还是英文版,返回的文件名都是utf8编码,和windows系统的默认编码无关。 1、想问问java大牛,java的文件,程序执行(返回)是不是都是java经过utf8编码过的? 2、linux系统也是这样的情况码?
java如果未指定编码,默认就是utf-8,除非你指定编码。windows程序一般都是支持unicode,不管系统默认什么编码都能转换成utf-8。
yiyefangzhou24 2020-07-16
  • 打赏
  • 举报
回复
引用 1 楼 maradona1984 的回复:
1.不是,文件名应该跟文件内容的编码无关,个人觉得读取的编码格式是java的默认编码 2.java的默认编码没有指定应该跟操作系统走的,也可以通过启动参数指定,但实际操作过程中感觉有点不靠谱
应该这样问: 用java读取windows文件列表,发现无论windows操作系统是中文版(gbk编码)还是英文版,返回的文件名都是utf8编码,和windows系统的默认编码无关。 很奇怪的是我中文的操作系统,就用
File F = new File(m1), l[] = F.listFiles();
这种方式获取文件列表,其中文件名是中文,理论上应该是gbk编码,但是输出的时候是utf8
maradona1984 2020-07-16
  • 打赏
  • 举报
回复
1.不是,文件名应该跟文件内容的编码无关,个人觉得读取的编码格式是java的默认编码 2.java的默认编码没有指定应该跟操作系统走的,也可以通过启动参数指定,但实际操作过程中感觉有点不靠谱

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧