22 पॉइंट द्वारा GN⁺ 2023-10-03 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • 20 साल पहले Joel ने "Plain Text जैसी कोई चीज़ नहीं होती" कहते हुए ज़ोर दिया था कि encoding को ज़रूर समझना चाहिए
  • Unicode वह मानक है जो सभी मानव भाषाओं को कंप्यूटर पर इस्तेमाल करने योग्य बनाने के लिए एकीकृत करता है
  • यह एक code point system है जो अलग-अलग अक्षरों को एक unique number आवंटित करता है
  • सबसे बड़ा code point 0x10FFFF है, जो लगभग 11 लाख code points की जगह देता है
  • UTF-8 सबसे आम encoding है, और 98% संभावना है कि वही इस्तेमाल हो रही हो
  • UTF-8 एक variable-length encoding है, जिसमें code point को 1 से 4 bytes की sequence में encode किया जा सकता है
  • UTF-8, ASCII के साथ byte compatibility रखता है और basic Latin के लिए space-efficient है
  • UTF-8 में built-in error detection और recovery features होते हैं, इसलिए complete और valid UTF-8 byte sequences की पहचान की जा सकती है
  • extended grapheme cluster, या grapheme, वह unit है जिस पर iterate किया जाना चाहिए, code point पर नहीं
  • Unicode हर साल update होता है, और grapheme cluster को परिभाषित करने वाले नियम भी हर साल बदलते हैं
  • Unicode locale के अनुसार अलग तरह से render हो सकता है
  • Unicode में surrogate pair दो UTF-16 units होते हैं जिनका उपयोग एक single Unicode code point को encode करने के लिए किया जाता है
  • UTF-16 कुछ systems में अब भी in-memory representation के रूप में इस्तेमाल होता है
  • Unicode strings की तुलना करने से पहले उन्हें normalize किया जाना चाहिए
  • लेख इस बात पर ज़ोर देता है कि strlen, indexOf, substring जैसे बुनियादी operations के लिए भी Unicode library का इस्तेमाल कितना महत्वपूर्ण है

3 टिप्पणियां

 
kimws 2023-10-04

"‍♂️".length के मामले में, Python 3.11 में यह 1 लौटाता है।

 
kimws 2023-10-04

इमोजी कमेंट में टूटा हुआ दिख रहा है

 
GN⁺ 2023-10-03
Hacker News टिप्पणियाँ
  • यह लेख Unicode की जटिलता और software development में इसके उपयोग के तरीकों पर चर्चा करता है।
  • एक टिप्पणीकार लेख के इस दावे से सहमत नहीं है कि "extended grapheme cluster" Unicode के characters के बारे में सोचने का सबसे अच्छा तरीका है, और उसका तर्क है कि "character" की परिभाषा उसके इच्छित उपयोग के अनुसार बदल सकती है।
  • टिप्पणीकार सुझाव देता है कि string iteration को code points पर आधारित होना चाहिए, क्योंकि यही वह बुनियादी स्तर है जिस पर Unicode काम करता है।
  • एक अन्य टिप्पणीकार लेख की प्रशंसा करता है और लेखक के इस प्रश्न का उत्तर देता है कि "fi" ligature का अपना code point क्यों है; वह समझाता है कि इसका कारण Unicode का round-trip compatibility सिद्धांत है।
  • एक टिप्पणीकार शिकायत करता है कि पेज पढ़ते समय स्क्रीन पर कई mouse pointers दिखाई देते हैं।
  • एक अन्य टिप्पणीकार इस चुनौती पर चर्चा करता है कि जब उपयोगकर्ता कई भाषाएँ पढ़ और लिख सकता हो तो computer locale कैसे सेट किया जाए, और Linux की आलोचना करता है कि उसमें Windows की तुलना में customization options कम हैं।
  • एक टिप्पणीकार अपना अनुभव साझा करता है कि combining characters को संभालने के तरीके की वजह से उसे third-party systems के लिए user input sanitize करने में समस्याएँ हुईं।
  • एक अन्य टिप्पणीकार लेख के इस दावे का खंडन करता है कि code points काम करने की सबसे अच्छी इकाई नहीं हैं, और कहता है कि कई स्थितियाँ ऐसी हैं जहाँ code points पर काम करना उचित है।
  • एक टिप्पणीकार Unicode में "é" के encode होने के बारे में लेख के उदाहरण की आलोचना करता है, और कहता है कि यह भ्रामक है तथा सामान्य रूप से characters को encode करने के तरीके का प्रतिनिधित्व नहीं करता।
  • एक अन्य टिप्पणीकार Chinese, Japanese, और Korean logograms को एक ही code point दिए जाने की समस्या पर चर्चा करता है, जिसके कारण यदि system locale Chinese न हो तो Windows में Chinese filenames की rendering खराब हो जाती है।
  • एक टिप्पणीकार पेज पर mouse cursor effect देखकर भ्रमित और चिढ़ा हुआ है।