gpt4 book ai didi

java - 从java中的控制台读取UTF-8标准的字符

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:16 26 4
gpt4 key购买 nike

我想从控制台读取一些 Unicode 字符(波斯语字符)。我已经使用了 System.in 但它不起作用。看起来标准输入不理解我在输入中写入的字符,因此它只是向我的字符串变量返回一些胡言乱语。我绝对确定字符串变量的标准设置为“UTF-8”。相信我,我仔细检查了。

我尝试过的一些代码。

String t = new String (new Scanner(System.in).nextLine().getBytes() , "UTF-8");

没用。

byte b[] = new byte[4];
System.in.read(b);
String st = new String (b , "UTF-16");
System.out.println(st);

我编写上述代码是为了仅读取一个波斯语字符。也没有用。

最佳答案

首先,控制台必须处于UTF-8模式。

如果使用 NetBeans,请编辑文件 <NetBeansRoot>/etc/netbeans.conf 。下netbeans_default_options ,添加-J-Dfile.encoding=UTF-8 .

确定控制台和项目编码设置为 UTF-8 后,请尝试以下操作:

Scanner console = new Scanner(new InputStreamReader(System.in, "UTF-8"));
while (console.hasNextLine())
System.out.println(console.nextLine());

注:System.inInputStream ,即字节流,它从控制台一对一地生成字节。
要读取字符,您需要 Reader 。一个Reader需要 InputStream和编码,并生成字符。

如果没有帮助,请尝试另一个控制台(例如 Windows cmd ,但首先运行 chcp 65001 )。

关于java - 从java中的控制台读取UTF-8标准的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50854762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com