乌克兰字母排序不好



问题是使用order_by()时,乌克兰字母按字母顺序排列不正确,即在"а"б";放置";";以及";";。

您可以通过以下方式更改表中所有列的排序规则:

ALTER TABLE <mytable> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

没有语句可以在一次操作中更改所有表。你必须一次做一张桌子。

将列编码更改为utf8mb4_unicode_ci对我有所帮助。PS。无法更改整个数据库或表的编码。仅列。

但后来发现,这对我来说还不够。我需要对包含字母和数字的地址进行排序。最后,我能够用Natsort 按照我需要的方式完成

from natsort import humansorted
import locale
locale.setlocale(locale.LC_ALL, 'uk_UA.UTF-8')
objects = humansorted(objec, key=lambda p: p.address)

最新更新