问题标签 [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 投票
1 回答
1505 浏览

shift-jis - 尝试用 Java 读取日文 CSV 文件

0 投票
2 回答
741 浏览

python - 从字符串中获取特定编码的字符代码

我正在尝试从 unicode 字符串中获取 shift-jis 字符代码。我在 python 方面并不是那么博学,但这是我迄今为止尝试过的:

但我得到一个UnicodeEncodeError: 'ascii' codec can't encode character u'\u81cd' in position 0: ordinal not in range(128)错误。字符串始终是单个字符。

0 投票
1 回答
105 浏览

c - Shift-JIS 可以包含零吗?

我必须存储从互联网上挖来的以 Shift-JIS 格式编写的日本人名序列。我正在考虑将它们存储在字符数组中并将它们写入文件,例如:

我唯一担心的是,如果 Shift-JIS 字符可能包含 '\0' 那么这显然会中断......但我不确定 Shift-JIS 是否曾经这样做过。不幸的是,Shift-JIS 似乎是一个如此神秘的系统,以至于我几乎无法理解我在网上找到的系统的定义,并有足够的信心自己回答这个问题。

0 投票
1 回答
792 浏览

c - TextOut() 和 Shift-JIS(日文字符)

我有一个程序,我在屏幕上使用TextOut(). 我现在想添加打印 Shift-JIS 编码字符串的功能。我能以某种方式告诉TextOut()我我想打印一个 Shift-JIS 字符串还是我必须完全使用另一个函数?TextOut 的文档似乎没有提到编码。

仅供参考:我的程序目前是用 MS Visual Studio 2015 编译的,并且“字符集”设置为“使用多字节字符集”。

0 投票
1 回答
566 浏览

csv - 用 Shift-JIS 编写 CSV 文件(MFC VC++,Windows Embedded - WinCE)

正如标题所说,我一直在尝试将用户输入 CEdit 控件的数据写入文件。

该系统是一个运行 Windows CE 的手持终端,在其中运行我的测试应用程序,我尝试输入最初显示在CListCtrl。字符在我的测试应用程序 UI 的手持显示屏上正确显示。最后,我尝试从 List 控件读回数据并将其写入文本 CSV 文件。我从控件读回的数据是正确的,但是在将其写入 CSV 时,事情变得一团糟,我的 CSV 文件不可读,并显示奇怪的符号和无意义的字母数字垃圾。

我对此进行了搜索,最后在 stackOverflow 上遇到了类似的问题: UTF-8、CString 和 CFile?(C++,MFC)

我尝试了他们的一些建议,最后得到了一个正确的 UTF-8 CSV 文件。

写入 csv 文件的代码如下所示:

到目前为止还可以。现在,对于我的用例,我想稍微改变一下,使 CSV 文件编码为 Shift-JIS,而不是 UTF-8。对于 Shift-JIS,我应该使用什么 BOM,以及我应该对上述代码进行哪些更改?

感谢您的任何建议和帮助。

0 投票
1 回答
1089 浏览

c++ - WideCharToMultiByte - Shift-JIS 代码页所需的大小和写入的字节数不同

我有一个包含四个日文字符的 Unicode 字符串,我正在使用 WideCharToMultiByte 将其转换为指定 Shift-JIS 代码页 932 的多字节字符串。为了获得所需缓冲区的大小,我正在调用 WideCharToMultiByte首先将 cbMultiByte 参数设置为 0。这将按预期返回 9,但是当我再次调用 WideCharToMultiByte 进行转换时,它返回写入的字节数为 13。下面是一个示例,我目前正在硬编码我的缓冲区大小为 100:

buffer[8] 包含字符串终止符 \0 正如预期的那样。buffer[9-12] 包含字节 63。

因此,如果我将缓冲区的大小设置为 sizeRequired 它太小并且第二次调用 WideCharToMultiByte 失败。有谁知道为什么要额外写入 4 个字节,每个字节的字节值为 63?

0 投票
2 回答
1391 浏览

vba - SHIFT-JIS 到 Unicode?

0 投票
2 回答
1688 浏览

java - Shift-JIS 编码字符串的不同字体

在 Java 中,我正在从以 Shift-JIS 格式编码的文件中读取字节数组,但获取的字符串中字符的“样式”看起来与普通字符串不同(更宽?)。以下是我对“P”字母的含义的示例:
P - P
正如您所见,Shift-JIS 中的第一个看起来与第二个不同。有没有办法对 Shift-JIS 字符串使用“普通”字符?
我正在使用这段代码来执行转换:

0 投票
2 回答
2945 浏览

ruby-on-rails - 生成CSV文件Rails 4.2时设置字符编码

我有一个模块可以在包含时生成模型的 csv 文件。

我将模块包含在要为其生成 csv 文件的模型中

在我的控制器中,我做

我想将生成的 csv 文件的字符编码设置为Shift_JIS而不是默认的 utf-8。做这个的最好方式是什么 ?谢谢

编辑:

我试过了

现在我收到一个错误Encoding::ConverterNotFoundError code converter not found (UTF-8 to SHIFT-JIS)

0 投票
1 回答
426 浏览

windows - 从“运行”对话框启动时,CMD 编码错误

前段时间我不得不将我的系统区域设置从捷克语(默认)更改为日语,因为我需要运行一些否则会崩溃的日语程序。

问题是,切换回捷克语后,每当我从 Win+R 对话框(这是我启动 cmd 的首选方式)打开它时,我的命令提示符都会以 Shift-JIS 编码启动。它还会以一种奇怪的臃肿字体绘制字符。即使从我的系统中完全卸载日语后,问题仍然存在。

如果我以任何其他方式打开 cmd(开始菜单,右键单击开始 -> 命令提示符,cmd.exe ...),一切正常。我能想到的所有设置都设置为捷克语:

  • 系统语言环境
  • 非 Unicode 程序的语言
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage(OEMCP值)

另一件事是Regedit总是打开HKEY_CLASSES_ROOT\MIME\Database\Codepage,虽然我不知道这是否与问题有关。

从 8.1 和 7 免费升级后,我正在运行 Windows 10。图片显示了不同的 cmd 窗口。

http://i.imgur.com/jyyhAOA.png