String直接量的编码依赖源文件的编码吗

finemi 2015-04-25 10:34:18
比如一个.java源文件保存为gbk编码,里面有一个写在代码内的常量字符串。
当我使用这个字符串的时候,他是否就是GBK编码的字符串?
我感觉java的字符串应该和编码无关吧,但是刚刚测试UTF-8的java源文件编译后,输出语句输出的常量是乱码,改为GBK就正常。
求大神详细讲解下相关知识
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
finemi 2015-04-26
  • 打赏
  • 举报
回复
引用 1 楼 u011004037 的回复:
个人感觉,如果没有指定字符编码,那么javac会使用默认的编码解析文件(应该是系统默认编码吧),那么源码中UTF-8编码的汉字就有可能被当成GBK编码的,因为两种编码方式的码值不一样,UTF-8的码值在GBK中可能就没有对应的字,然后就乱码了。lz可以试试使用GBK编码格式打开一个UTF-8编码的文件,就是一堆乱码。
哦,原来是编译时做的,我还以为是运行时呢
youzi05 2015-04-25
  • 打赏
  • 举报
回复
个人感觉,如果没有指定字符编码,那么javac会使用默认的编码解析文件(应该是系统默认编码吧),那么源码中UTF-8编码的汉字就有可能被当成GBK编码的,因为两种编码方式的码值不一样,UTF-8的码值在GBK中可能就没有对应的字,然后就乱码了。lz可以试试使用GBK编码格式打开一个UTF-8编码的文件,就是一堆乱码。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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