我想在数据库中搜索字符for link in soup.find_all('a'):
print(link.get('href'))
-“拉丁大写字母i上面带点(U + 0130)”-并将其替换为常规İ
(U + 0049)。
例如,我想将“SİNG”转换为“ SING”。
数据库排序规则是utf8mb4_unicode_ci。
我可以使用I
COLLATE utf8mb4_bin
但是我不能代替它。
SELECT * FROM `benches` WHERE `inscription` LIKE '%İ%' COLLATE utf8mb4_bin
我得到了错误
UPDATE `benches` SET inscription = REPLACE(inscription, 'İ', 'I') WHERE INSTR(inscription, 'İ') > 0 COLLATE utf8mb4_bin
这很奇怪,因为数据库和列肯定是#1253 - COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1'
那么,我需要什么样的魔术调用来搜索和替换字符串中的特定Unicode字符?
答案 0 :(得分:0)
快速修复方法可能是
Index
更好的解决方法是在连接后执行此操作:
has_many :subscribed_posts, through: :boards, source: :posts, conditions: {["user_id != ?", id] }
如果以上两种方法都不起作用,请提供一个测试用例,其中包括创建和填充表以及UPDATE `benches`
SET inscription = REPLACE(inscription, _utf8mb4'İ' COLLATE utf8mb4_bin, 'I')
WHERE INSTR(inscription, _utf8mb4'İ' COLLATE utf8mb4_bin) > 0
。要想出另一个可能的解决方案,可能需要做一些实验。