यूनिक्स/लिनक्स एसई पर, एक मित्र विशेषज्ञ ने समझाया कि आप जो देखते हैं वह यूनिकोड को छाँटने का उचित तरीका है। मूल रूप से, मानक सॉर्ट करने का प्रयास कर रहा है:
di Silva Fred di Silva Fred
di Silva John diSilva Fred
diSilva Fred disílva Fred
diSilva John -> di Silva John
disílva Fred diSilva John
disílva John disílva John
अब यदि रिक्त स्थान अक्षरों की तरह महत्वपूर्ण थे, तो सॉर्ट फ्रेड और जॉन की विभिन्न समान वर्तनी को अलग नहीं कर सका। तो क्या होता है कि यह बिना रिक्त स्थान के पहली बार छांटता है। फिर एक दूसरे पास में, बिना व्हॉट्सएप के समान स्ट्रिंग्स को सॉर्ट किया जाता है। (यह एक सरलीकरण है, वास्तविक एल्गोरिथम काफी जटिल दिखता है, व्हाइटस्पेस, एक्सेंट और गैर-मुद्रण योग्य वर्णों को प्राथमिकता के विभिन्न स्तरों को निर्दिष्ट करता है।)
आप सेटिंग करके यूनिकोड संयोजन को बायपास कर सकते हैं:
export LC_ALL=C
या पोस्टग्रेज़ में छँटाई के लिए बाइट सरणी में कास्ट करके:
order by name::bytea
या (भट्ठा के उत्तर से) C
. निर्दिष्ट करके मिलान:
order by name collate "C"
या कॉलम के लिए डिफ़ॉल्ट संयोजन को बदलकर:
alter table products alter column name type text collate "C";