- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Java 小程序,它从 .xlsx 文件读取内容并将其中的一些内容写入新的 .json 文件。在 .xlsx 单元格中有一些带有德语变音符号(“ä, ö, ü”)的字符串。
我的问题:
如果程序在 MacOS 上运行,一切正常。
如果程序在 Windows 上运行,变音符号在生成的 .json 文件中显示为问号 �。
我尝试过的:
1. 将我正在使用的 IDE (Eclipse) 中的项目文本文件的编码设置为 UTF-8
2. 将 Excel 文件(在 Windows 上)的编码设置为 UTF-8
这是我的代码的基本结构,使用库 json simple、gson 和 apache-poi。
读取 .xlsx 文件:
FileInputStream in = new FileInputStream(file);
Workbook workbook = new XSSFWorkbook(in);
我到处使用的函数来读取单元格的内容 Row.getCell(index).getStringCellValue()
。
我将读取的内容放入Spiel
类型对象的String Field中,并从该对象生成相应的.json文件,如下所示:
FileWriter writer = new FileWriter("Levels.json");
Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
gson.toJson(spiel, writer);
writer.close();
正如我所说,当我在 Mac 上运行时,一切都运行良好。Excel 文件中有变音符号,当我在 TextEdit 上打开生成的 .json 文件(作为 UTF-8 编码文件)时,它们正常显示。
如果我在 Windows 上运行并打开生成的 .json 文件,例如写字板,所有的变音符号都被这个符号取代了。
由于以后要在windows上运行程序,所以确实需要解决这个问题。我可能做错了什么?
最佳答案
问题是 FileWriter
不允许您指定字符集,而是使用平台默认字符集,每个字符集可能不同。 (对于 MacOS 是“UTF-8”,而在 Windows 上是特定于 Windows 设置的)
改为使用:
Writer writer = new OutputStreamWriter(new FileOutputStream("Levels.json"),
StandardCharsets.UTF_8);
(JSON 始终根据 JSON 标准使用 UTF-8 字符集)
关于java - Excel/Java/Json 的编码问题(德语元音变音),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55526842/
我是 Arduino 的新手(因为这个周末我必须学习它来完成一个学校项目)并且我无法让我的压电扬声器为闹钟发出声音。当草图运行时,一切正常。 LED 闪烁,但蜂鸣器不发声,这很奇怪,因为 LED 和蜂
我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法。我正在尝试生成 DTMF 音调,但似乎找不到任何实质性内容。我还希望能够指定播放音调的时间(即模拟按住按钮而不是简单地按下按钮....
我正在尝试制作一个可以在 Octave 音阶中水平滚动的钢琴应用程序。下面是另一个我尝试做的钢琴应用程序的示例。箭头在钢琴上滚动 Octave 。我已经了解了scrollview,但是似乎只允许通过滑
我正在我的 Android 应用程序中使用文本转语音 - TTS。我已经粘贴了下面的代码。TTS 工作正常,但是它说的语音/文本不是很清楚。它说的真的快速,以至于它不是完全可以理解的.. 我尝试设置
我正在调用一个带有号码的通话应用程序,然后通过 发送 dtmf 音 String number = "tel:+1234567,890#"; Intent c1 = new Intent(androi
我正在开展一个项目,该项目要求我的应用能够在通话期间以语音的上行链路频率发送 DTMF 音。 我的两个条件是: 我们不使用定制的 Android 平台 我们不需要root手机 我花了几天时间做功课,并
我需要制作一个IVR -auto dialer应用程序,它 => 调用免费电话 => 然后选择一个选项继续 => 然后输入一些代码 => 然后几秒钟后(一些广告/说 30 秒)需要输入另一个选项 前三
在我的 Twilio基于应用程序我通过 Twilio REST 创建拨出电话API。 当目标方响应时,我将他/她放到最近创建的 session 中。 在让他/她参加 session 之前,如何播放特定
Twilio 未从 Skype 检测到我的 DTMF 音。 我们用 twilio 建立了一个 IVR 系统,客户必须输入一个 7位客户编号。 我们的一些客户使用 voip 电话, 因此我们需要确保 t
我想在我的应用程序中以编程方式发送DTMF 铃声。在搜索时我找到了一个方法 public void playDtmfTone(字符数字) 这是 google 在 android 中发送 DTMF 的新
我读过一些有关 Android 中 DTMF 的文章。我想不可能通过流式传输 .wav 文件(或其他格式)进行自动电话调用并检测其他人(调用接收者)的输入。 我想制作一个应用程序来调用我/或其他人,并
我是一名优秀的程序员,十分优秀!