问题标签 [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.
html - html 中的日文标题乱码 - SHIFT JIS
在我的 html 代码中,我使用日语符号的地方 - 标题(仅标题)是乱码。它仅在日本环境(OS)中。标题显示为:����i�A�。身体显示日本标志。
我试图设置像'lang'这样的属性,但它不起作用。
java - 将 UTF-8 转换为 Shift-JIS
我已经编写了简单的转换代码来从 UTF-8 转换为日文字符。
但它给出了输出错误,
有没有人知道我在哪里犯了错误或需要一些额外的逻辑,这真的很有帮助!
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
请告诉我如何阅读其他字符,这真的很有帮助。谢谢!
macos - 无法在 mac 终端中 cat shift-jis 文件
我有一个 emacs 在 mac 上正确显示的文件。当我在 mac 终端中 cat 或更少文件时,我看到乱码,例如“?E?u?@?@?@?@?@?@?@?”。运行 chardetect 表示 SHIFT-JIS。
我尝试将以下内容添加到 ~./bashrc 但仍然看到相同的输出。
在终端首选项中的编码下,检查所有编码,包括日语编码。我在这里错过了查看这些文件的其他方法吗?我可以在 mac 终端中看到其他带有日文字符的文件。
internet-explorer - IE11 iframe 缓存内容编码错误
我有一个动态嵌入 iframe 的网页,它加载包含本地化字符串的 JS 文件:外部页面的内容类型为“Shift-JIS”,但内部框架(和本地化字符串)为“utf-8 ”。结构是这样的:
在初始渲染时,内容正确显示。但是在重新加载时,在 Internet Explorer 11 中,如果my-i18n.js
从 IE 的缓存返回,则 utf-8 编码的内容将被解释为 shift-JIS 编码的内容,并且在视觉上会被破坏。
只有当 IE 从缓存中返回本地化字符串时。如果我打开 devtools 并单击“始终从服务器刷新”以禁用缓存,它每次都呈现良好。
有没有办法解决这个问题,或者解决它?
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 的更正和建议!我深入研究了这个问题,发现我能够做到这一点而不会弄乱SetConsoleOutputCP
windows.h 中使用的宽字符以及 ASCII 输入/输出的相同功能而不会出错。一件重要的事情是,对于 Windows 上的 Shift-JIS,正确的语言环境是“Japanese_Japan.932”。但是,知道这个功能是 Windows 特定的,我想知道如何在其他平台(如 Linux)上实现相同的功能,只使用 C 标准功能。无论全局区域设置如何,printf 系列函数似乎都将输出字符串视为 UTF-8。
python - python文件写入显示UnicodeEncodeError的错误
我需要制作 cp932(它已扩展shift-jis
)
UnicodeEncodeError: 'cp932' codec can't encode character '\u270c' in position 0: illegal multibyte sequence
我只是简化了mytext
这篇文章。
我认为这个字符通过忽略 flg 的编码。
但是,write
显示错误。
有没有办法解决这个问题??
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 字体的字体,包含全角/半角日文字符的所有字形?如果是这样,我如何将它们打包到我的控制台应用程序中以便它是可移植的?
谢谢!