【问题标题】:Convert Hindi Output à¤à¥ विनियमन à¤à¤§à¤¿à¤¨à¤¿à¤¯à¤®?转换印地语输出 à¤à¥ विनियमन à¤à¤§à¤¿à¤¨à¤¤à¤¯à¤®?
【发布时间】:2017-02-13 14:36:37
【问题描述】:

à¤à¥ विनियमन à¤à¤§à¤¿à¤¨à¤¿à¤¯à¤®

当我翻译一个英文句子时得到这个输出。有什么办法让它可读吗??

目标是将英语句子翻译成印地语。在控制台中正确获得了印地语翻译的输出。我需要将其写入文本文件。

翻译后的句子设置为“翻译”,并通过 getParameter() 尝试将其保存到文件中。

字符串翻译 = request.getParameter("translation"); OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(fileDir,true), "UTF-8"); BufferedWriter fbw = new BufferedWriter(writer);
fbw.write(翻译);

Output file

Output file 1

【问题讨论】:

  • 我怀疑这是您的控制台编码的问题。但是你如何得到这个输出呢?
  • 显示一些你尝试过的代码。你从哪里得到字符串 à¤à¥ विनिय?
  • 请向我们展示您的代码和您的输入。否则,我们无法帮助您找到问题。
  • 请发帖minimal reproducible example。这将帮助人们帮助你。你甚至可能最终自己解决它! :)。另见How to Ask
  • 您将无法修复该字符串。您需要修复获取它的方法。

标签: java


【解决方案1】:

这是字符编码不匹配的问题(如 UTF-8)。
确保从请求参数返回的数据的字符编码为 UTF-8 编码。
如果数据采用不同的编码,则在写入文件时必须使用该编码。

【讨论】:

  • 您可以尝试使用 ISO-8859-1。我猜您是从 http 服务获取数据。 ISO-8859-1 是 http 的默认字符集。
  • 我检查了使用 String val=request.getCharacterEncoding(); 返回的数据的字符编码System.out.println(val);它返回“null”。我还使用 ISO-8859-1 进行了检查,但输出没有变化。
  • 它显然不会是 ISO-8859-1,因为该字符集不包括梵文字符。如果这确实是问题的原因,它必须是 UTF-8 或 UTF-16。
  • 您在哪个控制台看到了正确的输出?你是怎么打印出来的?
  • 在 Eclipse 的控制台中,它正在正确打印输出。只需使用 System.out.println();因为我在标签的开头将 pageEncoding 和 CharacterEncoding 指定为 UTF-8,所以我认为它的打印正确。
猜你喜欢
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 2015-03-27
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多