gpt4 book ai didi

java - 为什么我手动编译并运行代码与通过 IDE 自动编译和运行代码时得到的输出不同

转载 作者:行者123 更新时间:2023-12-01 05:04:52 27 4
gpt4 key购买 nike

以下程序将乌尔都语字符串与常规英语字符串分开。我写了这个程序

    try {
File f = new File("C:/Users/user/Desktop/tes.txt");
FileReader reader = new FileReader(f);
BufferedReader br = new BufferedReader(reader);
String text = "";
String s;
while( ( s = br.readLine() ) != null) {
text += s;
}

String splits[] = text.split("سٹیمپ ختم ہو جاتی ہے");

for(int i=0;i<splits.length;i++) {
System.out.println(splits[i]);
}
} catch(Exception exc) {
exc.printStackTrace();
}

notepad++ 中编译它,并运行它以获得以下输出:

∩╗┐╪│┘╣█î┘à┘╛ ╪«╪¬┘à █?┘ê ╪¼╪º╪¬█î █?█Æ

suhail

╪│┘╣█î┘à┘╛ ╪«╪¬┘à █?┘ê ╪¼╪º╪¬█î █?█Æ

gupta

╪│┘╣█î┘à┘╛ ╪«╪¬┘à █?┘ê ╪¼╪º╪¬█î █?█Æ

cse

╪│┘╣█î┘à┘╛ ╪«╪¬┘à █?┘ê ╪¼╪º╪¬█î █?█Æ

ghazal

╪│┘╣█î┘à┘╛ ╪«╪¬┘à █?┘ê ╪¼╪º╪¬█î █?█Æ

当文件 tes.txt 看起来像这样时:

enter image description here

但是当我从 netbeans IDE 运行相同的程序时,我得到的预期输出是:

suhail
gupta
cse
ghazal

当我在notepad++中编写并使用命令编译它后运行相同的程序时,有什么区别:

javac -encoding UTF-8 checker.java
java checker

并在 netbeans IDE 中复制相同的程序并按运行按钮?在第一种情况下,字符串不会从正则表达式 urdu 字符串 中拆分出来。

最佳答案

FileReaderFileWriter 类隐式使用系统的默认字符编码。

尝试使用InputStreamReader阅读

InputStreamReader in = new InputStreamReader(new FileInputStream(f), "UTF-8");
BufferedReader br = new BufferedReader(in);
while(br.ready())
{
text = text+br.readLine();
}

编辑:

1) 更改提示符的编码:chcp 65001

2) 在InputStreamReader的构造函数中指定Charset

 import java.io.*;

public class UnicodeTestFile{

public static void main(String args[]) throws Exception{

try {
File f = new File("C:/Users/user/Desktop/tes.txt");
InputStreamReader ir = new InputStreamReader(new FileInputStream(f),"UTF-8");
BufferedReader br = new BufferedReader(ir);
String text = "";
String s;
while( ( s = br.readLine() ) != null) {
text += s;
}

String splits[] = text.split("سٹیمپ ختم ہو جاتی ہے");

for(int i=0;i<splits.length;i++) {
System.out.println(splits[i]);
}
} catch(Exception exc) {
exc.printStackTrace();
}}
}

3)指定编码进行编译

javac -encoding UTF-8 Checker.java

关于java - 为什么我手动编译并运行代码与通过 IDE 自动编译和运行代码时得到的输出不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869479/

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