【问题标题】:utf 8 encoding is not working properly using javautf 8 编码无法使用 java 正常工作
【发布时间】:2016-04-09 05:07:12
【问题描述】:

我必须将日志打印到包含 ¥、€ 等货币符号的 HTML 文件中 下面是我用来写入输出文件的代码行

File fileDir = new File("filename.html"); 
out = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(fileDir,true ),"UTF-8")); 

在输出文件中,'ï¿¥ 正在打印,而不是 ¥ 和 €,而不是 €。

【问题讨论】:

  • 你在哪里看到那些奇怪的字符?您用于显示日志 UTF 的应用程序准备好了吗?您是否在启用 UTF 的 html 文件中设置了相应的标头?如果不是,您的浏览器不知道他必须处理 UTF。

标签: java file-io utf-8 character-encoding fileoutputstream


【解决方案1】:

一些可能性:

  1. HTML 文件未设置为显示 UTF-8 编码。尝试在您用于查看文件的浏览器中设置 UTF-8 并查看是否有效。

如果默认情况下页面未以 UTF-8 显示,请更新页眉。它应该包含:

<head>
<meta charset="UTF-8">
</head>
  1. 垃圾进,垃圾出。 Java 不会为您转换编码。您必须将 UTF-8 编码字符实际写入输出流。

你的¥字符是从哪里来的?它们是否嵌入到您的源文件中?

如果它们在 Java 源代码中,您的编辑器必须设置为 UTF-8 编码,否则您将在源代码中输入不正确的字符。

【讨论】:

  • ¥字符来自应用程序,从 DOM 获取并写入 HTML 日志文件,编辑器启用 UTF,值在编辑器控制台中显示正确,仅在 html 文件中显示不需要的字符
  • 查看 HTML 文件时浏览器说的编码是什么?
  • 谢谢。在 html 文件创建过程中添加 后问题得到解决。
猜你喜欢
  • 1970-01-01
  • 2015-04-28
  • 2018-10-25
  • 2021-03-22
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多