原始数据:
帐户 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
答案 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
代表黑色钻石 - 意味着问题是由于"存储"事情的一面。