问题标签 [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 回答
788 浏览

html - HTML 日语编码问题

在我的日文操作系统的 HTML 页面中面临问题。

编码为日文 JIS 后,我的 HTML 表单源看起来像

因此,在字符串之后,<%我的表单中断并且无法查看表单的其余部分。

建议,我能为这种问题做些什么。

0 投票
2 回答
3636 浏览

java - 在 Java 中使用 Shift_JIS 进行日文字符编码

我有一个使用 tomcat 提供的 Web 应用程序。

在其中一个页面上,它允许用户下载存储在我的文件服务器上的文件。那里存在的大多数文件的名称都是日文的。但是,当用户下载文件时,文件名是乱码。此外,它在不同的浏览器上的工作方式也不同。

原代码如下:

例如,08_タイヨーアクリス_装置开発_実成绩表在 Google Chrome 中被解释为
08_ƒ^ƒCƒ^-[ƒAƒNƒŠƒX_'•'uŠJ”-_ŽÀ-Ñ• 在 Google Chrome 中
这个问题是由于文件名中存在“5c”和似乎是 Shift_JIS 中的一个已知问题。我想知道解决这个问题的正确方法。

0 投票
1 回答
888 浏览

asp.net-mvc - ASP MVC 后编码 Shift-Jis

我有一个表单,它位于带有以下元标记的普通 .html 文件中:

我发布表单的服务要求数据采用 shift-jis 编码。当我通过使用 Chrome 打开此 .html 文件然后单击提交按钮来发布此表单时,服务可以接受它。当我检查 Fiddler 中的帖子值时,日文字符出现在服务的帖子中,如下所示:

goods_name_1 = "���i�P"

现在,当我采用完全相同的形式并将其放置在 ASP MVC 视图中时,将视图提供给 Chrome,其源代码与我在 .html 文件中的源相同,视图源看起来与打开的 .html 版本完全相同. 但问题是当我使用提交按钮发布表单时,发布值如下所示:

goods_name_1 = "商品一"

然后该服务会回复一个编码问题。

谁能建议可能出了什么问题?从 ASP MVC 提供的视图具有响应标头“Content-Type:text/html; charset=utf-8”。我不确定为什么帖子值与 .HTML 文件版本不同。有任何想法吗?

只是要补充一点,我拥有的 .html 文件在 Windows 中保存为 Unicode。

谢谢。

0 投票
1 回答
3246 浏览

java - 将日文汉字字符从 Shift-JIS 转换为 UTF-8

我正在尝试使用一些日文文本读取 CSV 文件,并将该文件中的一些数据写入数据库。CSV 是通过一些我不太熟悉的 Flex 代码上传的。但在我的后端,我有简单的 byte[] 文件内容。我正在使用以下代码:

当我调试 strLine 变量时 - 我只看到问号而不是日文汉字字符(特别是,我已经在汉字字符裵上测试过它)。其他日文字符似乎没问题(例如〒字符)。在调试窗口中(后来在我的数据库中)它看起来像这样:〒���

如果我在做同样的事情,但在我的代码中使用 UTF-8 和 Const.UTF-8 而不是 Const.ENCODING_SHIFT_JIS 文件编码 - 一切正常。但客户需要 Shift-JIS 支持。也许有人可以告诉我如何解决这个问题,或者至少在哪个特定领域(flex、java、shift-jis 编码本身......)它可能是?

0 投票
1 回答
573 浏览

mysql - 将 UTF8 数据插入 SJIS DB (MySQL)

我正在使用从 webform 将数据插入 mySQL 数据库的 web-app (JSP),数据作为 UTF8 编码的参数发送到 servlet。应用程序与普通字母和符号完美配合,直到一定程度。但是,如果我尝试插入任何 4 字节字符,它将被问号 (?) 符号替换。

我很确定这个问题与 MySQL 将 UTF8 仅作为 3 个字节的奇怪方式有关,但这次排序规则是 SJIS。

我必须忽略某些东西,所以我将不胜感激任何可用的帮助,为此,我已经为此苦苦挣扎了一天。

至于整理信息,我尝试了多种不同的设置,结果总是一样的,一切正常,除了 4byte 字符。

这是默认排序规则:

我也尝试过以下方法:

我插入的表示例(Z 列):

里面的JAVA-class编码设置如下

我知道 DB 可以保存这些字符,因为以前导入的(LODA DATA INFILE)数据具有这些字符,并且它们在 DB 中可见(不是问号)。

所以朋友们,我请你帮忙,这可能很容易(或不可能),如果你需要更多信息,我可以从数据库/源获得。

UTF8 4 字节字符的示例是:(您的浏览器可能看不到)

或:) https://codepoints.net/U+1F4A9

非常感谢!

0 投票
1 回答
1710 浏览

c# - 将文件从 Shift-JIS 转换为 UTF8 无需从磁盘重新读取即可无 BOM

我正在处理多种格式的文件,包括 Shift-JIS 和 UTF8 NoBOM。使用一点语言知识,我可以检测文件是否被正确地解释为 UTF8 或 ShiftJIS,但如果我检测到文件不是我读入的类型,我想知道是否有办法重新解释我的内存中的数组,而无需使用指定的新编码重新读取文件。

现在,我在假设 Shift-JIS 的文件中读取:

在我用魔法确定它是已知格式(有 BOM)还是数据作为 Shift-JIS 有意义之后,一切都很好。如果数据是垃圾,那么我将通过以下方式重新读取文件:

我试图避免这个重新读取步骤,并尽可能重新解释内存中的数据。

还是魔术已经发生,我不必要地担心双重 I/O 访问?

0 投票
1 回答
102 浏览

encoding - 获取任何晦涩字符集/编码的字符映射(例如 ibm-943_P14A-2000)

最近我们的软件出现了一个问题,即某些晦涩的汉字(汉字)无法被我们的 Shift-JIS 编码识别。我制作了一个算法来读取任何 Shift-JIS 字符串,以尝试找到任何“越界”汉字并将字符串切换为 UTF-8(它有更多字符,但使用更多空间)。

为了找到不包含的汉字,我需要掌握ibm-943_P14A-2000 编码的字符映射表。

去哪里寻找这些字符集的映射?通过网络搜索很容易找到 UTF8 查找等,但我根本找不到哪些值对应于该编码中的哪些值的图表/表格/文件。

如果您能指出我的任何方向,无论多么晦涩难懂,我将不胜感激。

0 投票
2 回答
1113 浏览

unicode - EUC-JP 或 GB18030 文本文件

0 投票
2 回答
4817 浏览

c++ - C++ ShiftJIS 到 UTF8 的转换

我需要转换双字节字符。在我的特殊情况下,Shift-Jis 可以更好地处理,最好使用标准 C++。

以下问题最终没有解决方法: MSVC (std::codecvt) 上的双字节编码:无法识别前导字节

那么是否有人对如何使用 C++ 标准处理这种转换提出建议或参考?

0 投票
1 回答
701 浏览

android - 为什么日元 (U+00A5) 符号的 Android Shift-JIS 编码会产生 -4,-4 ?

运行以下代码似乎会生成错误的值:

它产生 [ -4, -4 ],但我期望 [ 0x5c ]

我尝试了各种替代名称,“Shift-JIS”、“shift_jis”、“cp932”,都产生了相同的结果。

当我将结果数据输入 Shift-JIS 解码器时,出现异常:java.nio.charset.UnmappableCharacterException: Length: 2

也就是说,解码器配置如下:

但是鉴于编码器的输出看起来是错误的,我的猜测是解码器是无关紧要的。我的观点是,无论实际字节如何,编码器都会生成无法解码的数据。

全宽日元 (U+FFE5) 编码为 [ -127 (0x81), -113 (0x8F) ],并正确解码。

奇怪的是,如果我尝试解码 [ 92 (0x5C) ],这就是我认为单宽度日元的 Shift-JIS 编码,Android/Java 解码器会产生一个反斜杠,将字符保留为 92。

如果编码器不支持给定字符,我会期望一个替换字符,例如“?”。但是 -4 (0xFC) 甚至似乎都不是有效的 Shift-JIS。它甚至不是 Unicode 替换字符 U+FFFD。使用以下行,我可以看到编码器似乎配置为使用 [-4, -4]:

  • 那么为什么在 Shift-JIS 中没有映射单一宽度日元?
  • [-4, -4] 是一个明智的编码器替代品吗?
  • 为什么解码器不支持 0x5C 映射到日元 (U+00A5)?
  • 如果 0x5C 不是正确的编码,那是什么?