MySQL脚本无法通过python正确执行

时间:2017-11-11 00:11:49

标签: python mysql unicode substring

原始数据:

帐户 1234 租

通过手动执行脚本在MySQL中运行,然后使用Python shell执行脚本:

SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(Account,':',-1),' � ',-1) as Description,
SUBSTRING_INDEX(SUBSTRING_INDEX(Account,':',-1),' � ',1) as Acct_Number
FROM table1

MySQL输出(正确的)

Acct_Number    Description
1234             Rent

Python输出(错误的输出)

Acct_Number    Description
1234           1234 � Rent

有没有办法让python阅读这个奇怪的 角色?已成功使用Python在类似的帐户数据(也使用子字符串索引)上运行脚本,该数据包含 - 而不是此 字符,并且它完全正常。

如果此帖子中没有显示此字符,请参阅以下链接:https://apps.timwhitlock.info/unicode/inspect?s=%EF%BF%BD

1 个答案:

答案 0 :(得分:0)

请参阅Trouble with UTF-8 characters; what I see is not what I stored了解"黑钻石的原因"。

另请参阅http://mysql.rjweb.org/doc.php/charcoll#python以获取有关在Python和MySQL中使用UTF-8的提示。

找到实际存储的十六进制数可能很重要 - 以确定问题在INSERT与显示屏上的位置。

如你所知,十六进制EFBFBD代表黑色钻石 - 意味着问题是由于"存储"事情的一面。