我正在阅读《Lua编程》第一版(是的,我知道有点过时了),在第3.2节(关于关系运算符)中,作者说:
例如,在欧洲的Latin-1区域设置中,我们有“acai”<“açaí”<“acorde”。
我不懂。对我来说,"acai" < "açaí"
没问题,但为什么是"açaí" < "acorde"
呢?
据我所知(维基百科也证实了),"c" < "ç"
,那么我错了吗?
我正在阅读《Lua编程》第一版(是的,我知道有点过时了),在第3.2节(关于关系运算符)中,作者说:
例如,在欧洲的Latin-1区域设置中,我们有“acai”<“açaí”<“acorde”。
我不懂。对我来说,"acai" < "açaí"
没问题,但为什么是"açaí" < "acorde"
呢?
据我所知(维基百科也证实了),"c" < "ç"
,那么我错了吗?
print("acai" < "açaí")
print("açaí" < "acorde")
print(os.setlocale("pt_PT"))
print("acai" < "açaí")
print("açaí" < "acorde")
true
false
pt_PT.iso88591
false
true
但是现在书中"acai"和"açaí"的顺序似乎不同了。
"acai" < "açaí"
和"açaí" < "acorde"
?正如@Kamiccolo在评论中指出的那样,lvm.c使用strcoll()函数来比较字符串,因此看起来变音符号在比较中可能不相关。 - Valdir Stumm Junior软件库必须处理这些问题,因为这正是用户所需要的。值得庆幸的是,一些旧的惯例已经不再使用。
"acai" < "açaí" < "acorde"
等同于'c' < 'ç' < 'c'
,这是没有意义的。 - Mud