相关疑难解决方法(0)

使用特殊字符读/写.txt文件

我打开记事本(Windows)并写

Some lines with special characters
Special: Ž?š??
Run Code Online (Sandbox Code Playgroud)

并转到另存为... "someFile.txt",其中Encoding设置为UTF-8.

在Java中我有

FileInputStream fis = new FileInputStream(new File("someFile.txt"));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);

String line;
while((line = in.readLine()) != null) {                         
    printLine(line);
}
in.close();
Run Code Online (Sandbox Code Playgroud)

但我得到问号和类似的"特殊"字符.为什么?

编辑:我有这个输入(.txt文件中的一行)

665,Ž?š??
Run Code Online (Sandbox Code Playgroud)

和这段代码

FileInputStream fis = new FileInputStream(new File(fileName));
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader in = new BufferedReader(isr);

String line;
while((line = in.readLine()) != null) {
    Toast.makeText(mContext, line, Toast.LENGTH_LONG).show();

    Pattern …
Run Code Online (Sandbox Code Playgroud)

java eclipse file-io android character-encoding

9
推荐指数
1
解决办法
5万
查看次数

在UTF-8中从键盘读取

我需要阅读用户的输入,我想支持非拉丁字母,例如Å,Ä和Ö.

BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"), true);
out.println(keyboard.readLine());
out.println("Read with charset: " + Charset.defaultCharset().name());
Run Code Online (Sandbox Code Playgroud)

当我运行此代码并输入拉丁字母时,它按预期工作(我输入内容,按回车键,然后打印出我输入的内容).但如果我尝试å我得到这个:

å

?
Read with charset: UTF-8
Run Code Online (Sandbox Code Playgroud)

如果文本以非拉丁字母结尾,我必须按两次输入,然后它不会正确显示它们.我在Netbeans的控制台中尝试了这个,并且在Windows命令提示符下都没有给出预期的结果.


我找不到UTF-8的解决方案,而是选择了ISO-8859-1.它适用于我的Netbeans控制台(绝对应该是UTF-8)和CMD,当我第一次运行时chcp 28591,更改了字体(在我的情况下是必要的)并运行我的程序.

java

5
推荐指数
1
解决办法
1294
查看次数

Java - 无法在 BufferedReader 中正确读取特殊字符

我已经创建了从 csv 文件读取数据的代码。但是,我无法处理 \xc2\xa3 等特殊字符。

\n\n

例如,My Base Cost (K\xc2\xa3)被读作My Base Cost (K\xc3\x83\xe2\x80\x9a\xc3\x82\xc2\xa3).

\n\n

我可以做什么来纠正这个问题?

\n\n
public void parseCSVFile(String filename){\n\n     try {\n            br = new BufferedReader(new FileReader(csvDirectory + filename));\n\n            while ((parsedLines = br.readLine()) != null) {\n\n                String[] parsedData = parsedLines.split(csvSplitByComma);\n\n                entireFeed.add(parsedData[0]);\n                entireFeed.add(parsedData[1]);\n\n                System.out.println(parsedData[0]);\n                System.out.println(parsedData[1]);\n\n                it = entireFeed.iterator();\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

java bufferedreader

2
推荐指数
1
解决办法
7239
查看次数