问题标签 [shift-jis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2050 浏览

html - html 中的日文标题乱码 - SHIFT JIS

在我的 html 代码中,我使用日语符号的地方 - 标题(仅标题)是乱码。它仅在日本环境(OS)中。标题显示为:����i�A�。身体显示日本标志。

我试图设置像'lang'这样的属性,但它不起作用。

0 投票
1 回答
123 浏览

html - HTML 中日文文本的编码问题

我正在与一个旧的日本网站项目合作。我从服务器下载旧文件,它在浏览器的离线模式下工作正常。

但是当我用编辑器打开它时,文本被破坏了。然后我尝试通过将编码更改为大多数来解决这个问题。如下所示。

  • UTF-8
  • 带有 bom 的 utf-8
  • 移位 JIS
  • ETC

然后我尝试使用几个现代编辑器并更改元字符集。我也试图在谷歌上找到一个解决方案,但我没有得到任何积极的东西。

仅 HTML 示例

编码问题的编辑器截图

0 投票
2 回答
8676 浏览

java - 将 UTF-8 转换为 Shift-JIS

我已经编写了简单的转换代码来从 UTF-8 转换为日文字符。

但它给出了输出错误,

有没有人知道我在哪里犯了错误或需要一些额外的逻辑,这真的很有帮助!

0 投票
1 回答
362 浏览

java - UTF-8 无法正确传递日文字符(平假名和片假名)字符串作为参数

例如,我需要的文件在这个文件路径中找到,它将作为参数传递:

"C:\Users\user.name\docs\jap\あああいいいうううえええおおおダウンロード\filename.txt"

我用这段代码来解码字符:

但是,输出是:

C:\Users\user.name\docs\jap\あああい�?�?�?�?�?えええおおお�?ウンロード\filename.txt

有些字符没有被正确解码。我已经把控制台的文本编码和编码改成了UTF-8,但是还是不行。

但如果我只是定期打印它,它会显示得很好。

显示:

C:\Users\user.name\docs\jap\あああいいいうううえええおおおダウンロード\filename.txt

请告诉我如何阅读其他字符,这真的很有帮助。谢谢!

0 投票
1 回答
301 浏览

macos - 无法在 mac 终端中 cat shift-jis 文件

我有一个 emacs 在 mac 上正确显示的文件。当我在 mac 终端中 cat 或更少文件时,我看到乱码,例如“?E?u?@?@?@?@?@?@?@?”。运行 chardetect 表示 SHIFT-JIS。

我尝试将以下内容添加到 ~./bashrc 但仍然看到相同的输出。

在终端首选项中的编码下,检查所有编码,包括日语编码。我在这里错过了查看这些文件的其他方法吗?我可以在 mac 终端中看到其他带有日文字符的文件。

0 投票
1 回答
422 浏览

character-encoding - Shift_JIS 中的反斜杠和波浪号字符是否有正确的编码?

0 投票
2 回答
382 浏览

internet-explorer - IE11 iframe 缓存内容编码错误

我有一个动态嵌入 iframe 的网页,它加载包含本地化字符串的 JS 文件:外部页面的内容类型为“Shift-JIS”,但内部框架(和本地化字符串)为“utf-8 ”。结构是这样的:

在初始渲染时,内容正确显示。但是在重新加载时,在 Internet Explorer 11 中,如果my-i18n.js从 IE 的缓存返回,则 utf-8 编码的内容将被解释为 shift-JIS 编码的内容,并且在视觉上会被破坏。

只有当 IE 从缓存中返回本地化字符串时。如果我打开 devtools 并单击“始终从服务器刷新”以禁用缓存,它每次都呈现良好。

有没有办法解决这个问题,或者解决它?

0 投票
0 回答
111 浏览

c - 在 C 中使用 fwscanf() 从 Shift-JIS 文本读取失败


我正在尝试使用 C 中的 fwscanf() 读取 Shift-JIS 编码的文本文件,如下所示:

文件中每一行的格式如下:
_あ_い_う_え_お.wav=-あB2,568.613,375.0,-583.333,250.0,83.333
生成的数组长度正确,没有出错在编译或运行时,但操作后数组仍然为空。
但是,我已经能够使用此代码块来正确确定文件中的行数:

我也不确定 %[^L','] 是否可以用宽字符正确处理。我的编译器是 Windows 10 上的 Mingw-w64。
提前致谢!

编辑:感谢 Jonathan Leffler 和 phuclv 的更正和建议!我深入研究了这个问题,发现我能够做到这一点而不会弄乱SetConsoleOutputCPwindows.h 中使用的宽字符以及 ASCII 输入/输出的相同功能而不会出错。一件重要的事情是,对于 Windows 上的 Shift-JIS,正确的语言环境是“Japanese_Japan.932”。但是,知道这个功能是 Windows 特定的,我想知道如何在其他平台(如 Linux)上实现相同的功能,只使用 C 标准功能。无论全局区域设置如何,printf 系列函数似乎都将输出字符串视为 UTF-8。

0 投票
2 回答
592 浏览

python - python文件写入显示UnicodeEncodeError的错误

我需要制作 cp932(它已扩展shift-jis

UnicodeEncodeError: 'cp932' codec can't encode character '\u270c' in position 0: illegal multibyte sequence

我只是简化了mytext这篇文章。

我认为这个字符通过忽略 flg 的编码。

但是,write显示错误。

有没有办法解决这个问题??

0 投票
1 回答
797 浏览

c++ - 在 C++ 中将 wchar_t 打印到控制台

我制作了一个简单的程序,它将读取 PS1 存储卡二进制文件并在 Visual Studio 中使用 C++ 在控制台中显示其内容。游戏标题在内存中以 Shift-JIS 格式编码,因此我使用 MultiByteToWideChar 函数对其进行转换:

我现在的问题是我无法将 lTitleL 变量打印到控制台。我试过 cout、wcout、printf、wprintf,但我无法让它们工作!我知道 lTitleL 变量正确地保存了标题,因为我可以在调试器中看到它。当我调用我尝试过的任何打印功能时,根本没有打印任何内容。任何帮助,将不胜感激!谢谢。

大编辑:

好的,这就是我的位置:

  • MultiByteToWideChar 将 Shift-JIS 输入字符串转换为宽字符。
  • 将其打印到控制台以进行调试。
  • 现在的问题是 PS1 存储卡以全角形式存储所有字符,因此我使用 LCMapStringEX 将它们转换为半角以获得更好的输出。
  • 将其打印到控制台以进行调试。
  • 如果我很乐意使用 WriteConsoleW,这就足够了,但如果不是,那么一个问题是某些标点符号编码奇怪,并且使用 std::wcout 或 wprintf() 不能很好地打印。例如,连字符存储为 U+FF70 - “Halfwidth Katakana-Hiragana Prolonged Sound Mark”(转换为半角后),无论使用哪种字体,它们都只会显示为问号(但是,它们确实可以正确打印使用 WriteConsoleW)。
  • 因此,我现在可以使用 WideCharToMultiByte,使用 UTF-8 代码页来获取一个使用 std::wcout 或 wprintf() 很好地打印到控制台的字符串版本。但是,我必须同时调用 SetConsoleCP(65001) 和 SetConsoleOutputCP(65001) 才能正确打印,否则多字节字符(如我提到的 U+FF70)会逐字节打印。
  • 最后,要显示任何不寻常的字符,我需要选择一种可以显示它们的字体。我发现在我的控制台中可以使用默认字体的唯一字体是 NSimSun 和 SimSun-ExtB,其他字体似乎都不包含日文字符(至少对于 U+FF70 字符)。

为了帮助可视化它的输出,这里是使用 NSimSun 字体的控制台截图:

在此处输入图像描述

在这里使用 Consolas 字体:

在此处输入图像描述

现在我的问题是:我不是特别喜欢 NSimSun 字体,是否还有其他看起来更像 Consolas 字体的字体,包含全角/半角日文字符的所有字形?如果是这样,我如何将它们打包到我的控制台应用程序中以便它是可移植的?

谢谢!