从键盘读取数据,出现乱码的问题

Lucas- 2015-10-05 03:57:04
这是代码:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in,"UTF-8"));
System.out.print("请输入学生所在地:");
String location = br.readLine();
System.out.println(location);

控制台输出:
请输入学生所在地:俄罗斯
淇勭绥鏂


为什么设置了UTF-8编码之后,读入的内容还是乱码?
...全文
149 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
scmod 2015-10-05
  • 打赏
  • 举报
回复
哦...原来run configurations里面也可以改~
Lucas- 2015-10-05
  • 打赏
  • 举报
回复
引用 9 楼 scmod 的回复:
默认的好像就是从那个设置里面读过来的 System.out.println(System.getProperty("file.encoding"));这个可以看到 只是我这个是单个文件的编码设置,所以界面有点不一样
谢谢,我解决了。 我将项目中的一个文件单独改成GBK的编码,然后控制台编码就多出了一个选项,然后每次运行的时候Run As-->Common-->Encoding选项中就都多了一个GBK 的选项,然后最后再把那个改写成GBK的文件用UTF再写一遍。
scmod 2015-10-05
  • 打赏
  • 举报
回复
默认的好像就是从那个设置里面读过来的
System.out.println(System.getProperty("file.encoding"));这个可以看到

只是我这个是单个文件的编码设置,所以界面有点不一样
scmod 2015-10-05
  • 打赏
  • 举报
回复
引用 7 楼 Mr__lu 的回复:
[quote=引用 6 楼 scmod 的回复:] 要不就先读进来getBytes("ISO-8859-1")再new String(bytes, "utf-8")这样呢? 按理好像是一样的...诡异... 难道是输入法有问题?
从键盘输入的时候,System.in 这是以什么编码输入的啊[/quote] 不知道...我试了是跟Text File Encoding有关的 输入法我就用的搜狗简体,也没选过字符集什么的 Text File Encoding是GBK的时候用UTF-8那样会出来5个"?" 都统一的时候就可以,好像输入法应该没什么关系的样子
Lucas- 2015-10-05
  • 打赏
  • 举报
回复
引用 6 楼 scmod 的回复:
要不就先读进来getBytes("ISO-8859-1")再new String(bytes, "utf-8")这样呢? 按理好像是一样的...诡异... 难道是输入法有问题?
从键盘输入的时候,System.in 这是以什么编码输入的啊
scmod 2015-10-05
  • 打赏
  • 举报
回复
要不就先读进来getBytes("ISO-8859-1")再new String(bytes, "utf-8")这样呢? 按理好像是一样的...诡异... 难道是输入法有问题?
Lucas- 2015-10-05
  • 打赏
  • 举报
回复
引用 4 楼 scmod 的回复:
[quote=引用 3 楼 Mr__lu 的回复:] [quote=引用 2 楼 scmod 的回复:] 额..没看仔细..原来不是文本读过来的 刚在电脑上试了下是好的... 楼主工程文件的编码是utf-8的吗?就工程右键properties里面那个Text File Encoding
java代码是UtF-8的,我在eclipse里写的,Text File Encoding也设置的UTF-8[/quote] 额...这是为啥... 我刚才试了是text file encoding不一样会乱码 那可能还有别的什么原因.....[/quote] 已哭瞎.....试了N多方法,不知道到底错哪了
scmod 2015-10-05
  • 打赏
  • 举报
回复
引用 3 楼 Mr__lu 的回复:
[quote=引用 2 楼 scmod 的回复:] 额..没看仔细..原来不是文本读过来的 刚在电脑上试了下是好的... 楼主工程文件的编码是utf-8的吗?就工程右键properties里面那个Text File Encoding
java代码是UtF-8的,我在eclipse里写的,Text File Encoding也设置的UTF-8[/quote] 额...这是为啥... 我刚才试了是text file encoding不一样会乱码 那可能还有别的什么原因.....
Lucas- 2015-10-05
  • 打赏
  • 举报
回复
引用 2 楼 scmod 的回复:
额..没看仔细..原来不是文本读过来的 刚在电脑上试了下是好的... 楼主工程文件的编码是utf-8的吗?就工程右键properties里面那个Text File Encoding
java代码是UtF-8的,我在eclipse里写的,Text File Encoding也设置的UTF-8
scmod 2015-10-05
  • 打赏
  • 举报
回复
额..没看仔细..原来不是文本读过来的 刚在电脑上试了下是好的... 楼主工程文件的编码是utf-8的吗?就工程右键properties里面那个Text File Encoding
scmod 2015-10-05
  • 打赏
  • 举报
回复
win下面文本文档一般都是gb2312的好像 要另存为然后选utf-8存的才是utf-8的

62,614

社区成员

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

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