问题标签 [character-set]
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.
python - 通过 SQLAlchemy 插入 MySQL 的行上的字符集会因机器而异?
我使用以下 Python 代码在 MySQL 表中插入一行:
在我的本地机器上进行测试时,正确插入了一个示例行:
使用来自不同机器 (AWS) 的相同代码会导致行略有不同:
整个 MySQL 数据库都配置为使用 utf8mb4 编码,实际上我花了很多时间相信 MySQL 应该为编码错误负责。但是由于我一直在不同的机器上运行它,我注意到相同的代码可以在一台机器上运行,但不能在另一台机器上运行。
由于正在执行相同的代码,我不相信我的 Python 代码是罪魁祸首。
Linux 和我在这里缺少的字符集/字符编码有什么奇怪的地方吗?
编辑:我应该注意到它们连接到同一个 RDS 数据库,这意味着数据库在两个插入之间是一致的。
php - 当 MySQL 配置为“UTF8”时,为什么 mysql_client_encoding() 返回“latin1”?
当我SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'
在 MySQL 中运行时,我得到以下变量:
但是,当我运行一个简单的测试以在 PHP 中连接到 MySQL而不设置任何编码时,mysql_client_encoding()
返回latin1
,但在 MySQL 字符集中找不到该编码。
为什么会发生这种情况,我该如何解决它,这样我就不必在mysql_set_charset('UTF8');
每次连接到 MySQL 时都不断地指定?
iso - ISO 标准目录 01.140.10 使用的基本拉丁字符集是什么?
我参考了“ISO 标准目录 01.140.10 使用的基本拉丁字符集”,我需要知道确切的代码点集。
如果不阅读标准目录 01.140.10中的所有标准,我能否在某处找到这个基本拉丁字符集(最好是相当权威的)?
是“Latin-1”、ISO 8859-1 等吗?还是完全不同的东西?
java - 如何将所有 utf-8 字符写入 Java 中的文件
需要使用 Java 创建一个包含所有 utf-8 字符的文件,或者在运行时将所有 utf8 字符创建为字符串。我尝试使用以下代码创建字符串。
但是当我尝试在控制台上将此字符打印为字符串时,我看到有很多“?” 符号。我不确定这是否是生成 utf8 字符集的正确方法。我读到 utf 字符可以是 1-4 字节范围。但是 java char 是 2 个字节。我认为在这种情况下我应该做错了什么。我浏览了许多链接,但找不到合适的答案。有人可以帮助解决这个问题。
swift - 检查单个 UnicodeScalar 的 CharacterSet 会产生奇怪的行为
在与CharacterSet
我合作时,我遇到了一个有趣的问题。到目前为止,我收集到CharacterSet
的内容是基于UnicodeScalar
; 您可以使用标量初始化它并检查标量是否包含在集合中。查询该集合以查明它是否包含 a Character
,谁的字形可能由几个 unicode 标量值组成,这是没有意义的。
我的问题在于当我使用表情符号进行测试时,表情符号是一个 unicode 标量值(十进制的 128518)。由于这是一个单一的 unicode 标量值,我原以为它会起作用,结果如下:
如您所见,如果CharacterSet
包含单个标量值(可能是由于优化),则检查有效,但在任何其他情况下,它都无法按预期工作。
我找不到任何关于较低级别实现CharacterSet
或它是否以某种编码(即 UTF-16 之类NSString
)工作的信息,但由于 API 处理了很多,UnicodeScalar
我很惊讶它会像这样失败,我不确定为什么会发生这种情况,或者如何进一步调查。
任何人都可以解释为什么会这样吗?
java - IText - 使用 PdfDictionary 和 PDF Stamper 编辑西班牙语文档
我正在尝试使用 itext 读取文档并替换其中的字符串。但是一旦被操纵,所有的西班牙字符都会变成垃圾字符。以下是更改pdf的代码。
在实际的 pdf 中有一个字符串 ${address-line-one} 我将其替换为“20th Street”
这可行,但使用流中的这个西班牙语单词
Documentación 成为 Documentaci�n
和其他西班牙语单词一样。
我还在 java 控制台中打印了 bytes[] ,发现读取本身没有正确获取该字符。
有什么建议吗?
sql - sqlcmd SQL 返回字符串值作为#name?- 值在 SSMS 中正确显示
我有一个简单的 SQL 查询,它从 varchar2 列中提取值。它在 SSMS 中返回正确的值,但是在 sqlcmd 中它返回:“#NAME?” (没有双引号)。
它试图返回的实际值是“-W”(没有双引号)
我正在运行的代码是:
知道这里有什么问题吗?可能是字符集问题?
软件版本:
SQL Server Management Studio V17.1
sqlcmd 版本 14.0.500.272 NT
mysql - MySQL InnoDB 表不接受带有 utf8mb4 编码的表情符号
我一直在尝试按照本教程中的步骤让我的数据库接受表情符号,因为它似乎是链接最多的一个。
https://mathiasbynens.be/notes/mysql-utf8mb4
即使有一个测试数据库,我也无法让它工作,到目前为止我找不到答案。这是我正在运行的一些测试代码。
我收到的错误
我必须有其他东西才能完成这项工作。所以..它是什么。
另一个谜题的线索是
退货
这是不正确的,但是当我检查 MySQL Workbench 中的选项文件时,看到在 General/International 下我有以下设置
my.ini 的内容
感谢您的时间和您可以提供的任何帮助。
oracle - 连接具有不同字符集的表
我正在尝试将数据库 1 中的表 1 连接到数据库 2 中的表 2。数据库 1 和数据库 2 具有不同的字符集。当我执行连接时,我收到 ORA-29275 错误(部分多字节字符)。我知道这是由于字符集/排序规则不同。
是否可以在不更改任一数据库的排序规则/字符集的情况下将表 1 连接到表 2?我试过cast()
或substr()
- 这没有帮助。
字符集 db1:WE8ISO8859P1
字符集 db2:UTF8
询问:
SELECT * FROM EMPLOYEES@DB1 e1
LEFT JOIN EMPLOYEES@DB2 e2
ON e1.SURNAME = e2.SURNAME
数据类型:
e1.SURNAME
= varchar2(78bytes)
e2.SURNAME
= varchar2(40bytes)
mysql - 通过 Windows cmd 将中文字符插入 MySQL 时出现奇怪的问题
我的环境
- 系统:Windows 7 64 位
- 数据库:MySQL 5.7.20 64 位
- 地区:中文
- cmd代码页:CP936
MySQL 设置
我的问题
在上述环境和数据库设置下,我尝试在创建的表cs_2中插入一条记录,但是失败了。
SQL 语句如下:
插入cs_2(方向)值('出');
结果是:
错误 1366 (HY000):不正确的字符串值:第 1 行的列 'direction' 的 '\xBA'
个人分析
在对mysql字符转换和Windows cmd输入转换进行了一些研究之后,我得到了以下指导:
- 首先是我在cmd上输入字符串时的字符转换:
键盘输入 -> 输入法转换 -> 系统内部编码
在我的例子中,系统内部编码是'出' 的UTF-16 LE格式的字节流</p>
- 二、是MySQL通信中根据系统变量的转换
系统内部编码 -> character_set_client -> character_set_connection -> 表的字符集
就我而言,这是
UTF-16 LE -> gbk -> gbk ->gbk
只有在系统内部编码和 character_set_client 之间的开始发生了转换。我认为转换是由系统本身执行的。
因此,在这种假设下,插入 SQL应该已经成功运行,但它失败了!我不知道为什么,我为这个问题苦苦挣扎了好几天,但我找不到解决方案。
如果有人碰巧遇到这个问题,请给我一些线索。非常感谢提前!