问题标签 [gb2312]

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 投票
4 回答
31708 浏览

unicode - 将 GB2312 转换为 UTF-8

我有一个文本文件,其中包含当前以 GB2312(简体中文)编码的本地化语言字符串,但我的所有其他语言文件都是 UTF-8。我发现使用此文件非常困难,因为我的文本编辑器都无法正常使用它并不断损坏它。是否有任何工具可以将其转换为 UTF-8,这样做有什么缺点吗?将其保留为 GB2312 并使用其他编辑器会更好(如果是,您能推荐一个)吗?

更新:我使用的是 Windows XP(英文安装)。

更新 #2:我尝试使用 Notepad++ 和 Notepad2 编辑 GB2312 文件,但两者都无法读取文件并损坏它们。

0 投票
2 回答
1746 浏览

java - java中如何判断一个字符是否为GB2312

我想写一个java函数,比如:如果一个字符不在GB2312中,返回false

0 投票
2 回答
5637 浏览

php - PHP解码GB2312

我正在处理一个 IMAP 电子邮件脚本,我有一些用GB2312编码的行(我假设是中文编码),看起来像这样=?GB2312?B?foobarbazetc

我怎样才能开始使用这个字符串?我查了一下mb_list_encodings(),这个没有列出。

0 投票
1 回答
341 浏览

javascript - 编码 GBK2312 难题

我是一名业余编码员,我有一个小问题。

我的目标是用两个按钮输入一个文本。

  • 第一个按钮使用了一个叫做 SundayMorning 的 Javascript 来翻译文本(到中文)
  • 第二个按钮将文本提交到 URL。URl 要求将中文文本编码为GBK2312 字符集。

我已经将各种找到的代码粘贴到了我现在的结果中。由于 SundayMorning Javascript 的挑剔行为,我的解决方案是有两个输入框,我将隐藏第二个输入框。

现在,这不起作用:

  • 无论我尝试什么,我都无法在 GBK2312 中对中文进行编码。
  • BONUS CONUNDRUM:第二个框会在我键入时逐个字母地复制我的输入,但不会复制 Javascript 返回的中文翻译。

对不起我的业余代码。如果您有任何好的建议,我会听从那些更聪明的人。

0 投票
2 回答
2013 浏览

python - 如何在 Python 中使用 GB2312 编码解析 RSS

我有一个用 GB2312 编码的 RSS 提要

当我尝试使用以下代码解析它时:

它无法解析 Feed。

任何想法如何解析 GB2312 编码的 RSS 提要

使用如下编码后,来自 Plex 媒体服务器的错误日志如下

0 投票
1 回答
541 浏览

java - 爪哇错误?无法使用 Scanner 直接读取 GB2312 文件

我有一个 GB3212 编码(中文)的文件。文件从这里下载http://lingua.mtsu.edu/chinese-computing/statistics/char/list.php?Which=MO与 Windows 下的 wget 一样,并存储到 ModernChineseCharacterFrequencyList.html 文件名中。

下面的代码演示了 Java 如何无法以一种方式读取它并以另一种方式结束。

即,如果Scannerscanner = new Scanner(src, "GB2312")代码创建是行不通的。如果Scanner是用scanner = new Scanner(new FileInputStream(src), "GB2312")then 创建的,它就可以工作。

分隔符模式线仅显示故障仍然存在的另一个选项。

这是故障还是设计行为?

更新

当代码正常工作时,它只会读取所有令牌直到结束。当它不起作用时,它会取消大约在中间的读取,没有异常或错误消息。

没有发现断裂处的奇点。也没有像 2^32 这样的“神奇”数字出现。

更新 2

最初该行为是在带有 Sun 的 JavaSE 1.6 的 Windows 上发现的

现在,在带有 OpenJDK 1.6.0_23 的 Ubuntu 上也发现了相同的行为

0 投票
2 回答
8705 浏览

php - PHP - UTF-8 转中文 ANSI (GB2312?) - 导出 CSV 文件

经过几个小时的研究(几次......),我发布了这个。我还没有找到任何答案。

我的目标是使用 PHP 编写一个 CSV 文件。这个文件必须有中文ANSI编码(我想简体中文是GB2312,在notepad++中我只看到ANSI编码)。必须导入到另一个工具。

[重要的提示]

我们目前正在使用 notepad++ 和一台默认语言为中文的 PC 转换文件。过程是:

  • 从网络应用程序获取 UTF8 CSV
  • 在中国电脑上用 Excel 2003 保存为 csv
  • 在notepad++中打开,编码已经是ANSI,删除一个前导“?” 在文件的开头。

我进行了测试:将我的 .csv 文件更改为 .php 并用以下代码替换它以保持相同的编码:

这将打印:“ASCII”。

然后我不确定CSV的输出应该是什么:GB2312?,ASCII?,ANSI?。我什至不清楚它们之间的区别。

我还读到,使用 Excel 2007 保存为 CSV 格式的文件在中国 PC 上适用于该工具。

[/重要的提示]

目前,我无法做到正确!当我打开我在记事本++中得到的文件时,它仍然显示编码为 UTF-8 编码。很明显,因为汉字看起来不错,它们应该看起来“破碎”:-)。

我正在使用以下标头条件:

[附加信息]

我的文件编码方式是(我把它抽象化以保持简单)

[/附加信息]

我还在打印之前使用 iconv 将我的 CSV 字符串转换为 GB2312(也尝试了 mb_convert_encoding)

我的 .php 文件是用 UTF-8 编码编写的(不是没有 BOM 的 UTF-8)

基本上,我总是得到 UTF-8 文件作为输出,我需要 ANSI。看起来有这么多参数/属性,我不明白。您的帮助将不胜感激!

谢谢!

大卫

[附加信息]

例如,在我的标题列上将有以下编码更改:

  • PHP源代码中(UTF-8文件,英文电脑):商品序号(意思是:SKU,商品代码)
  • 在最终的 CSV 文件(ANSI 文件,英文计算机)中:ÉÌÆ·ÐòºÅ
  • 在最终的 CSV 文件(ANSI 文件,中文电脑)中:商品序号

[/附加信息]

0 投票
1 回答
833 浏览

c - 如何将版权符号写入 GB2312 编码的文件?

我想将版权符号写入 pdf 文件的页脚。八进制代码 \251 仅在文件的编码为拉丁文时才有效。(英文)当输出pdf为中文、日文、韩文时。符号印刷完全不同。我已经知道输出文件具有 GB2312 编码,版权符号的代码是两个字节字符 \0xAAC2 。

我一直在试图找出我应该如何打印它?我必须在 sprintf 之前将其转换为 utf16 吗?

0 投票
1 回答
494 浏览

c - 在c中显示带有中文区域设置的特殊字符

我需要调整现有的非 unicode c 项目来显示汉字。由于截止日期很短,而且我是 C 和编码的新手,为了支持在 gui 应用程序中显示中文文本,我已经将系统语言环境更改为简体中文 PRC 的路线。这反过来又将项目中的编码(在 Visual Studio 2010 中)更改为简体中文(GB2312)。

除了特殊字符(例如:度数符号、上标 2 等)显示为问号外,一切正常。我相信这是因为我们过去传递 \260 即 ascii 表中度数符号的八进制值,这不再等同于 gb2312 表中的任何内容。 

在键盘中显示度数符号的工作流程如下: 

显示函数(数据,'\260');//将度数符号的八进制值传递到键盘 

此 display_function 用于将整数输入转换为字符串以在键盘上显示: 

数据->[ pos ] = (char) ch; 

基本上我需要让这个(和其他特殊字符)正确显示。有没有办法使用当前设置传递这个符号? 

根据 gb23212 的字符列表,该符号是受支持的,因此我目前的想法是计算出该符号的八进制值并保持现有函数不变。这些当前将值作为字符传递。使用下表: 

http://ash.jp/code/cn/gb2312tbl.htm。 

和下面的公式来获得八进制值: 

与行关联的八进制数乘以 10 并添加到与列关联的八进制数。 

我相信这会是A1E0 x 10 + 3 = 414403. 

但是,当我尝试将其传递给 display_function 时,我得到“错误 C2022:'268':对于字符来说太大了”。

我要解决这个问题了吗?我不想更改现有函数,因为它们已广泛使用,但我是否需要更改函数以使用宽字符? 

如果以上内容令人费解并且充满了不正确的假设,我们深表歉意!一两个星期以来,我一直在努力解决这个问题,而编码、字符集和语言环境似乎变得越来越混乱!

提前致谢

0 投票
1 回答
2332 浏览

python - 这个字符 - ㎜ - 引发 UnicodeEncodeError