整理文件時出現一件怪事,有一堆看似名字大致相同、只有後綴日期不同的文件,按文件名稱排序時,竟然沒有按日期排序⋯⋯

ABcDe (2020-11).txt
ABcDe (2020-12).txt
ABcDe (2022-01).txt
АBсDе (2021-01).txt
АBсDе (2021-02).txt
АBсDе (2021-03).txt
肉眼看上去,前方的字串都是一樣的,按道理說應該會按後綴的日期先後排序才對啊orz
於是想說用半型/全型轉換工具看看好了,結果發現前方的字串果然是不同的:

接下來在python利用 ord() 函數找出各個字符的Unicode:
def print_unicode(input):
for tmp_char in input:
print("{0}: {1}".format(tmp_char, ord(tmp_char)))
結果如下,左方表格顯示的是「ABcDe (2020-11).txt」各字符所對應的Unicode碼(十進制),右方顯示的則是「АBсDе (2021-01).txt」各字符的Unicode碼。結果顯示原來後者字串中夾雜了幾個西里爾字母(Cyrillic scripts,部分斯拉夫族語言所使用的字母書寫系統)。這些字母都跟英文的A、c、e看起來一樣,但是Unicode編碼不一樣啊(Unicode大於128)⋯⋯Unicode「1040」號所對應的字符資訊可在這裡找到。


Leave a Reply