چار بنیادی موڈ
ہر موڈ حروف کی وسعت اور کثافت کے درمیان سمجھوتا کرتا ہے۔ عددی موڈ صرف ہندسے سنبھالتا ہے لیکن تین ہندسے 10 بٹس میں سمو دیتا ہے، جبکہ بائٹ موڈ کوئی بھی بائٹ سنبھالتا ہے مگر ہر ایک پر 8 بٹس خرچ کرتا ہے۔
الفا نیومیرک موڈ 45 حروف کے سیٹ کا احاطہ کرتا ہے: ہندسے 0–9، بڑے حروف A–Z، خالی جگہ اور علامات $ % * + - . / اور کولن۔ چھوٹے حروف اس سیٹ میں نہیں ہیں، اسی لیے پورے بڑے حروف والا URL اسی URL کے چھوٹے حروف والے ورژن سے چھوٹا کوڈ بنا سکتا ہے۔
- عددی: ہندسے 0–9، ہر 3 ہندسوں کے 10 بٹس
- الفا نیومیرک: 45 حروف، ہر 2 حروف کے 11 بٹس
- بائٹ: کوئی بھی 8 بٹ قدر، ہر بائٹ کے 8 بٹس
- کانجی: Shift JIS کے ڈبل بائٹ حروف، ہر ایک کے 13 بٹس
موڈ انڈیکیٹرز اور سیگمنٹس
ڈیٹا کا ہر حصہ 4 بٹ کے موڈ انڈیکیٹر اور حروف کی گنتی سے شروع ہوتا ہے، جس کی لمبائی موڈ اور ورژن پر منحصر ہے۔ کوڈ میں ایسے کئی سیگمنٹ ہو سکتے ہیں، مثلاً ہندسوں کی لمبی قطار کے لیے عددی اور باقی کے لیے بائٹ، جس سے نتیجہ چھوٹا ہو سکتا ہے۔
دوسرے 4 بٹ کے انڈیکیٹر حروف کے سیٹ کے بجائے خصوصیات کا اشارہ دیتے ہیں: کریکٹر انکوڈنگ بتانے کے لیے ECI، ڈیٹا کو کئی کوڈز میں بانٹنے کے لیے structured append، اور GS1 اور دوسرے صنعتی ڈیٹا فارمیٹس کے لیے FNC1۔ چار صفر بٹس کا ٹرمینیٹر ڈیٹا ختم کرتا ہے۔
- عددی 0001، الفا نیومیرک 0010، بائٹ 0100، کانجی 1000
- ECI 0111، structured append 0011
- FNC1 پہلی پوزیشن 0101، دوسری پوزیشن 1001
- ٹرمینیٹر 0000
بائٹ موڈ اور کریکٹر سیٹس
معیار میں بائٹ موڈ کی ڈیفالٹ تشریح ISO-8859-1 (Latin-1) ہے، لیکن آج زیادہ تر جنریٹر UTF-8 لکھتے ہیں تاکہ اعراب والے حروف، دوسری رسم الخط اور ایموجی محفوظ رہیں۔ ریڈر عموماً بائٹس کا معائنہ کر کے UTF-8 پہچان لیتے ہیں۔
جہاں کریکٹر سیٹ کا غیر مبہم ہونا ضروری ہو، وہاں ECI ہیڈر اسے واضح طور پر بتا سکتا ہے۔ اس کے بغیر ریڈر کبھی کبھار غلط اندازہ لگا کر الٹے سیدھے حروف دکھا سکتا ہے۔