当前位置: 首页 > 面试题库 >

无法使用Java将控制台中的德语“ umlauts”(äöü)写入文本文件

淳于典
2023-03-14
问题内容

目前,我正拼命尝试将从控制台读取的德语变音符号写入Windows 7上的utf8编码的文本文件中。

这是设置扫描仪的代码:

Scanner scanner = new Scanner(System.in, "UTF8");

这是读取字符串的代码:

String s = scanner.nextLine();

这是写入文件的代码:

    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(this.targetFile), "UTF8");

osw.write(s);

不幸的是,这样编写的文件不是使用示例“überraschung”,而是以utf8编码,但不会显示变音符号。该怎么办?


问题答案:

您的控制台可能不是UTF-8,因此当您new Scanner(System.in, "UTF8");创建的扫描器编码错误时,当您尝试从控制台读取行时,您的元音会丢失。

您可能要chcp在控制台提示符下使用以检查正在使用的代码页。

实际上,您可能根本不需要指定编码。如果只是将扫描程序创建为new Scanner(System.in),则应使用默认平台编码。



 类似资料:
  • 问题内容: 我从互联网上找到了下面的代码,可以正常工作,但是它没有将打印控制台写入omt.txt,它仅在第二个catch块之后写入语句。如果您运行该代码,则将理解我的意思。要做的就是将控制台上的所有内容写入“ omt.txt”文件中。 经过一番回答后,我发现我的问题不清楚,对此感到抱歉。我想将控制台输出保存到omt.txt文本文件。如果在控制台上打印了“ Hello 123”,它也应该在omt.t

  • 我正在我的Spring Boot应用程序中使用Logback。 null

  • 问题内容: 我已尝试使用此代码建议(http://www.daniweb.com/forums/thread23883.html#)将控制台输出写入txt文件,但未成功。怎么了? 问题答案: 你需要执行以下操作: 第二句话是关键。它将假定的“最终” 属性的值更改为提供的值。 可以使用类似的方法(和)来更改标准输入和错误流。有关详细信息,请参考。 上面的一个更通用的版本是这样的: 如果为is ,则流

  • 问题内容: 输出文件包含: 问题出在哪里?如何使用写入文本文件? 问题答案: 你必须写String … 你可以试试。 要么 要么

  • 我安装了IntelliJ的官方SBT插件(仍然在alpha中),我毫无问题地导入了一个Scala SBT项目(带有build.SBT)。但是当我尝试在Scala控制台中导入某些内容时,它会打印以下内容: 但当我在终端中运行SBT时启动完全相同的命令时,它工作得很好。 问题出在哪里?

  • 问题内容: 我编写了一个简单的控制台应用程序,使用ftplib从FTP服务器上载和下载文件。 我希望该应用程序向用户展示其下载/上传进度的一些可视化;每次下载数据块时,我都希望它提供进度更新,即使它只是数字表示形式(如百分比)。 重要的是,我要避免擦除在前几行中已打印到控制台的所有文本(即,我不想在打印更新的进度时“清除”整个终端)。 这似乎是一项相当普通的任务-如何在保留先前程序输出的同时,制作