ฉันไม่รู้สถานที่ใด ๆ ที่เป็นค่าเริ่มต้นเรียงลำดับตามนั้น การแก้ปัญหาคือการสร้างสถานที่ที่กำหนดเองด้วยการเรียงลำดับที่กำหนดเอง หากใครก็ตามสี่ปีต่อมาต้องการเรียงลำดับในแบบกำหนดเองนี่คือเคล็ดลับ
โลแคลส่วนใหญ่ไม่ได้ระบุลำดับการเรียงของตัวเอง แต่คัดลอกลำดับการเรียงที่กำหนดไว้/usr/share/i18n/locales/iso14651_t1_commonเพื่อให้เป็นสิ่งที่คุณต้องการแก้ไข แทนที่จะเปลี่ยนลำดับการจัดเรียงสำหรับเกือบทุกภาษาโดยการปรับเปลี่ยนต้นฉบับiso14651_t1_commonฉันขอแนะนำให้คุณทำสำเนา รายละเอียดเกี่ยวกับวิธีการเรียงลำดับการทำงานและวิธีสร้างโลแคลที่กำหนดเองใน$HOMEไดเรกทอรีของคุณโดยไม่ต้องเข้าถึงรูทในคำตอบของคำถามที่คล้ายกันนี้
ดูวิธีการaและAเรียงลำดับตามรายการในiso14651_t1_common:
<U0061> <a>;<BAS>;<MIN>;IGNORE # 198 a
<U0041> <a>;<BAS>;<CAP>;IGNORE # 517 A
bและBมีความคล้ายคลึงกัน:
<U0062> <b>;<BAS>;<MIN>;IGNORE # 233 b
<U0042> <b>;<BAS>;<CAP>;IGNORE # 550 B
เราจะเห็นว่าในครั้งแรกผ่านทั้งสองaและAมีสัญลักษณ์เรียง<a>ในขณะที่ทั้งสองbและมีสัญลักษณ์เรียงB <b>เนื่องจาก<a>ปรากฏขึ้นก่อน<b>ในiso14651_t1_common, aและAมีการเชื่อมโยงก่อนและb Bรอบที่สองไม่ได้ทำลายความสัมพันธ์เพราะตัวละครทั้งสี่มีสัญลักษณ์การเรียง<BAS>แต่ในระหว่างรอบที่สามความสัมพันธ์นั้นได้รับการแก้ไขเนื่องจากสัญลักษณ์การเรียงตัวอักษรตัวพิมพ์เล็ก<MIN>ปรากฏขึ้นที่บรรทัด 3467 ก่อนสัญลักษณ์การเรียงตัวอักษรตัวพิมพ์ใหญ่<CAP>(บรรทัด 3488) . ดังนั้นการเรียงลำดับสิ้นสุดขึ้นเป็นa, A, ,bB
การสลับสัญลักษณ์การเรียงที่หนึ่งและที่สามจะเรียงลำดับตัวอักษรเป็นตัวแรกตามตัวอักษร (ล่างและบน) จากนั้นตามด้วยสำเนียง ( <BAS>หมายถึงไม่เน้นเสียง) จากนั้นตามลำดับตัวอักษร อย่างไรก็ตามทั้งสอง<MIN>และ<CAP>มาก่อนตัวเลขดังนั้นสิ่งนี้จะมีผลที่ไม่พึงประสงค์จากการใส่ตัวเลขหลังตัวอักษร
วิธีที่ง่ายที่สุดที่จะให้หลักแรกในขณะที่ทำให้ทุกตัวอักษรตัวพิมพ์เล็กมาก่อนทุก<a>ตัวอักษรพิมพ์ใหญ่คือการบังคับตัวอักษรทั้งหมดจะผูกในช่วงแรกการเปรียบเทียบโดยการตั้งค่าพวกเขาทั้งหมดจะเท่ากับ เพื่อให้แน่ใจว่าเรียงลำดับตามตัวอักษรภายในเคสให้เปลี่ยนสัญลักษณ์การเรียงล่าสุดจากIGNOREเป็นสัญลักษณ์การเรียงแรกปัจจุบัน ทำตามรูปแบบนี้aจะกลายเป็น:
<U0061> <a>;<BAS>;<MIN>;<a> # 198 a
A จะกลายเป็น:
<U0041> <a>;<BAS>;<CAP>;<a> # 517 A
b จะกลายเป็น:
<U0062> <a>;<BAS>;<MIN>;<b> # 233 b
B จะกลายเป็น:
<U0042> <a>;<BAS>;<CAP>;<b> # 550 B
และตัวอักษรอื่น ๆ ที่เหลือ
เมื่อคุณสร้างเวอร์ชันที่กำหนดเองiso14651_t1_commonแล้วให้ทำตามคำแนะนำในคำตอบที่ลิงก์ด้านบนเพื่อรวบรวมสถานที่ที่กำหนดเองของคุณ