首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用与utf8不同的编码方式将Python写入数据库

用与utf8不同的编码方式将Python写入数据库
EN

Stack Overflow用户
提问于 2019-03-04 06:49:13
回答 1查看 82关注 0票数 1

Python 3.7.2

我将Python代码中的字符串写入数据库。我的字符串包含拉丁字母和西里尔字符,所以在数据库中我使用1字节编码koi8-r。奇迹是,我的字符串在没有失真的情况下被写入数据库,尽管utf8和koi8r有完全不同的字符序列(例如,ascii和utf8)。有时其他布局的字符出现在文本中,然后出现写入错误。

因此,问题是:

  1. 谁来转换字符串:我用来写入数据库的数据库或aiomysql库。
  2. 在Python / MariaDB中以多快的速度删除非koi8-r字符以避免错误。
  3. 是否有多字节编码,将拉丁字符和西里尔字符存储在第一个字节中,其他布局存储在其他字节中。

谢谢你提前参加了这次谈话。

EN

回答 1

Stack Overflow用户

发布于 2019-03-06 22:18:58

下面是INSERTing的处理过程

  1. 客户端使用字符集-1编码字符。
  2. 您告诉MySQL,当您连接或通过SET NAMES时,情况就是如此。
  3. 将插入字符的列被声明为字符集-2。
  4. INSERT从字符集-1转换为字符集-2。所以一切都很好。

SELECTing上,也会发生同样的事情,只不过转换是在相反的方向。

你所做的一切都是好的。但是,接下来,每个人都应该在客户端中使用UTF-8字符,在列中使用CHARACTER SET utf8mb4。如果你超出了你的字符集所允许的范围,那你就必须转变成这样,这可能只是俄语和英语。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54977938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档