当前位置: 首页 > 面试题库 >

如何在Python中编码(utf8mb4)

齐乐逸
2023-03-14
问题内容

如何在Python中的ut8mb4中编码内容?

我有两组数据:正在从Parse迁移到新的MySQL数据库的数据,以及向前传输的数据(仅与新数据库通信)。我的数据库是utf8mb4,用于存储表情符号和带重音的字母。

当我使用python脚本时,第一组数据仅能正确显示(涉及表情符号和重音符号时):

MySQLdb.escape_string(unicode(xstr(data.get('message'))).encode('utf-8'))

并且在PHP中从MySQL数据库读取时:

$row["message"] = utf8_encode($row["message"]);

当我不包含第二部分数据时,仅能正确显示第二组数据(涉及表情符号和重音时)utf8_encode($row["message"])。我正在尝试协调这些数据,以便将两组数据都正确返回给我的iOS应用。请帮忙!


问题答案:

MySQL的utf8mb4编码是 只是标准的UTF-8

但是,他们必须添加该名称,以使其与仅支持BMP字符的 损坏的
UTF-8字符集
区分开。

换句话说,在Python端,与MySQL对话时,应始终编码为UTF-8,但要考虑到,除非utf8mb4 在MySQL端
使用,否则数据库可能无法处理U + FFFF以外的Unicode代码点。

但是,一般而言,您要避免 手动
编码和解码,而不必为此MySQLdb担心。为此,您可以配置连接和排序规则以透明地处理Unicode文本。对于MySQLdb,这意味着设置charset='utf8mb4'

database = MySQLdb.connect(
    host=hostname,
    user=username,
    passwd=password,
    db=databasename,
    charset="utf8mb4"
)

然后使用普通的Python 3 str字符串;将use_unicode选项设置为默认True*。

注意:这可以 为您 处理SET NAMESSET character_set_connection),因此无需手动发布。 __

*除非您仍然使用Python 2,否则默认值为False。将其设置为True并使用u'...'unicode字符串。



 类似资料:
  • 问题内容: 我用python脚本下载了一个网页。在大多数情况下,这可以正常工作。 但是,这个有一个响应标头:GZIP编码,当我尝试打印此网页的源代码时,它的腻子中包含所有符号。 如何将其解码为普通文本? 问题答案: 我使用zlib从Web解压缩压缩的内容。

  • 问题内容: 我有一个80%分类变量的机器学习分类问题。如果要使用一些分类器进行分类,是否必须使用一种热编码?我可以在没有编码的情况下将数据传递给分类器吗? 我正在尝试进行以下功能选择: 我读了火车文件: 我将类别特征的类型更改为“类别”: 我使用一种热编码: 问题是,尽管我使用的是坚固的机器,但第3部分经常卡住。 因此,没有一种热编码,我就无法进行任何特征选择来确定特征的重要性。 你有什么建议吗?

  • 我有一个80%分类变量的机器学习分类问题。如果我想使用一些分类器进行分类,我必须使用一个热编码吗?我可以不编码地将数据传递给分类器吗? 我试图做以下功能选择: > 我读了火车文件: 我将分类特征的类型更改为“类别”: 我使用一个热编码: 问题是,第三部分经常卡住,尽管我使用的是一个强大的机器。 因此,没有一个热编码,我无法进行任何特征选择,以确定特征的重要性。 你推荐什么?

  • 问题内容: 在Python 2中设置默认输出编码是一个众所周知的习惯用法: 这会将对象包装在编解码器中,该编解码器以UTF-8对输出进行编码。 但是,该技术在Python 3中不起作用,因为它期望使用a ,但是编码的结果是,并且在尝试将编码后的字节写入原始字节时发生错误。 在Python 3中执行此操作的正确方法是什么? 问题答案: 从Python 3.7开始,您可以使用以下命令更改标准流的编码:

  • 问题内容: 我想在Linux终端中编写自动完成代码。该代码应按以下方式工作。 它具有字符串列表(例如,“ hello”,“ hi”,“你好”,“再见”,“很棒”等)。 在终端中,用户将开始输入内容,当有匹配的可能性时,他会提示可能的字符串,供他选择(类似于vim编辑器或google增量搜索)。 例如,他开始输入“ h”,他得到提示 你好” _ “一世” _“你好吗” 更好的是,它不仅可以从字符串的

  • 我有一个python 3脚本,它应该从.csv文件中获取一些数据并将其写入json文件。在我的处理过程中,编码是正确的,因此德语元音变音符ü,ä或度符号°就像它们一样(#编码=标题处的cp1252)。 但是当我通过json.dump()写判决时,编码就消失了… 如何使用正确的编码向json文件写入判决?