“গ্রাহক তালিকার 葛 অক্ষর স্ক্রিন ও মুদ্রিত ফর্মে আলাদা দেখায়। গ্রাহক অভিযোগ করলেন ডেটা নষ্ট হতেই হবে।” — ব্যবসায়িক-সিস্টেম রক্ষণাবেক্ষণে এ ধরনের পরামর্শ বিরল নয়। আরেকটি সাধারণ “ব্যক্তির নামের অক্ষর সরকারি অফিসে জমা নথিতে প্রদর্শিত হয় না। পুরনো PC-তে দেখায়; বদলানোর পর □ হয়ে গেছে।”
দুটোই মাঠে “মোজিবাকে” বলা হয়, কিন্তু এনকোডিং অমিল থেকে আসা মোজিবাকে থেকে আলাদা সমস্যা। প্রথমটিতে ডেটার এক বিটও বদলায়নি আর শুধু দেখা বদলেছে; দ্বিতীয়টিতে সেই “গাইজি” হারিয়েছে যা শুধু সেই PC-তে ছিল।
flowchart TB
accTitle: দুটি সাধারণ পরামর্শ আসলে কী
accDescr: পরামর্শ যে 葛 স্ক্রিন ও ফর্মে আলাদা দেখায় সেই ক্ষেত্র যেখানে ডেটা একই থেকেছে আর শুধু দেখা বদলেছে; পরামর্শ যে PC বদলানোর পর □ হয়েছে সেই ক্ষেত্র যেখানে শুধু সেই PC-তে থাকা গাইজি হারিয়েছে; দুটোই এনকোডিং-অমিল মোজিবাকে থেকে আলাদা সমস্যা
c1["পরামর্শ ১: আকার স্ক্রিন ও ফর্মে আলাদা"] --> r1["ডেটা অপরিবর্তিত; শুধু দেখা বদলেছে"]
c2["পরামর্শ ২: বদলানোর পর □ হয়েছে"] --> r2["শুধু সেই PC-তে থাকা গাইজি হারিয়েছে"]
r1 --> diff["এনকোডিং মোজিবাকে থেকে আলাদা সমস্যা"]
r2 --> diff
চিত্র ১: “মোজিবাকে” বলা দুটি পরামর্শই এনকোডিং অমিল থেকে আলাদা সমস্যা।
এই নিবন্ধের প্রতিশ্রুতি সরল। অক্ষর-কোড (ডেটা) স্তরকে ফন্ট (দেখা) স্তর থেকে আলাদা করলে বেশিরভাগ জাপানি অক্ষর-সমস্যা সমাধানযোগ্য হয়। JIS2004 গ্লিফ পরিবর্তন, আদর্শ বৈচিত্র্য নির্বাচক (IVS), ও গাইজি (EUDC) থেকে, সরকারের অক্ষর প্ল্যাটফর্ম হয়ে, ফন্ট বেছে ও এম্বেড করা পর্যন্ত, ব্যবসায়িক সিস্টেমের ডেভেলপার ও আইটি স্টাফের সিদ্ধান্তের জন্য সাজানো।
Shift_JIS ↔ UTF-8 রূপান্তরে যে “মোজিবাকে” হয় তা বিদ্যমান নিবন্ধে কভার, তাই এই নিবন্ধ “কোড রাউন্ড-ট্রিপ সঠিক, কিন্তু দেখা বা প্রদর্শনযোগ্যতা ভুল” সমস্যায় কেন্দ্রীভূত।
১. আগে উপসংহার
- “মোজিবাকে” ও “গ্লিফ আলাদা” আলাদা সমস্যা। মোজিবাকে বাইট অনুক্রমের ভুল ব্যাখ্যার ডেটা-স্তর দুর্ঘটনা; গ্লিফ পার্থক্য ফন্টের গ্লিফের পার্থক্যের দেখা-স্তর দুর্ঘটনা; চিকিৎসা সম্পূর্ণ আলাদা।
- একই Unicode কোড পয়েন্টেও প্রদর্শিত গ্লিফ ফন্টের উপর নির্ভর করে। JIS X 0213:2004 葛, 辻 ও 飴-এর মতো ১৬৮ অক্ষরের উদাহরণ গ্লিফ মুদ্রণ-মানক রূপে সংশোধন করেছে, আর Windows Vista থেকে MS Gothic / MS Mincho-তে JIS2004 গ্লিফ ডিফল্ট করেছে।12
- গ্লিফকে ডেটা হিসেবে স্থির করার মানক উপায় আদর্শ বৈচিত্র্য নির্বাচক (IVS)। আপনি ভিত্তি অক্ষর প্লাস U+E0100 থেকে নির্বাচকের অনুক্রম দিয়ে গ্লিফ নির্দিষ্ট করেন; Adobe-Japan1, Hanyo-Denshi ও Moji_Joho (অক্ষর তথ্য প্ল্যাটফর্ম)-এর মতো সংগ্রহ Unicode-এর IVD-তে নিবন্ধিত।34
- অসমর্থিত পরিবেশে IVS-এর নির্দিষ্ট আচরণ নির্বাচক উপেক্ষা করে ভিত্তি অক্ষরের ডিফল্ট গ্লিফ প্রদর্শন। তবে একটি IVS-যুক্ত অক্ষর UTF-16-এ চার কোড একক পর্যন্ত হতে পারে, তাই অক্ষর-গণনা ও কাটার বাস্তবায়ন সতর্কতা চায়।5
- গাইজি (EUDC)-এর পরিণতি “শুধু সেই PC-তে দেখাতে পারে”। ব্যক্তিগত-ব্যবহার এলাকা কোড পয়েন্টের সম্মত অর্থ নেই, আর eudc.tte-তে নিবন্ধিত গ্লিফ অন্য PC, মেইল বা PDF-এ যায় না।67
- ব্যক্তিগত নাম সামলানো সিস্টেম গ্রহণযোগ্য অক্ষর সেট স্থির করুক ও বলুক। সরকার পক্ষে, কোসেকি একীভূত অক্ষর ও অক্ষর তথ্য প্ল্যাটফর্মের উপর গড়ে, মানক-অনুযায়ী সিস্টেম “প্রশাসনিক বিষয়ের মানক অক্ষর” ব্যবহারে যাচ্ছে।8910
- ফর্ম ও PDF-এর জন্য “ফন্টকে স্ক্রিনের সাথে মেলান, এবং এম্বেড করুন” ভিত্তি রেখা। এম্বেডিং অনুমতি ফন্টের লাইসেন্স (fsType) স্থির করে, আর দীর্ঘমেয়াদি-সংরক্ষণ PDF/A ফন্ট এম্বেডিং চায়।1112
- ব্যক্তিগত-নাম ডেটায় স্বাভাবিকীকরণ (NFKC) অসতর্কভাবে লাগাবেন না। পূর্ণপ্রস্থ ও অর্ধপ্রস্থ এক করা, এবং সামঞ্জস্য অক্ষর বদলানো, যে পার্থক্য রাখা উচিত তা হারায়।13
এক বাক্যে: “কোন বাইট অনুক্রম সংরক্ষণ করবেন” ডেটা-ডিজাইন সমস্যা; “কেমন দেখায়” ফন্ট-ডিজাইন সমস্যা। দুটো মিশিয়ে আলোচনা করলে সমাধানযোগ্য সমস্যাও সমাধান হয় না।
২. ডেটা ও দেখাকে আলাদা ভাবা — কোড পয়েন্ট ও গ্লিফ
Unicode-এ অক্ষর একটি সংখ্যা দিয়ে প্রকাশিত হয় যাকে কোড পয়েন্ট বলে। 葛 হলো U+845B, আর এই সংখ্যা প্রতিটি PC-তে এক। সেই সংখ্যা স্ক্রিন বা কাগজে কীভাবে আঁকা হয়, অন্যদিকে, ফন্টের গ্লিফ স্থির করে। একই U+845B-এর ফন্ট A ও ফন্ট B-এর মধ্যে আকারের বিস্তারে আলাদা হওয়া স্বাভাবিক আচরণ।
এই দুই স্তরকে ভিত্তি ধরে মাঠের লক্ষণ এভাবে ভাগ করা যায়।
| স্তর | যে দুর্ঘটনা ঘটে | প্রতিনিধি লক্ষণ | মূল চিকিৎসা |
|---|---|---|---|
| ডেটা স্তর (অক্ষর এনকোডিং) | এনকোডিংয়ের ভুল ব্যাখ্যা, রূপান্তরে ক্ষতি | 縺ッ-এর মতো মোজিবাকে, ? বা 〓 দিয়ে প্রতিস্থাপন, U+FFFD (�) |
রূপান্তর পথ চিহ্নিত ও ঠিক করুন |
| দেখা স্তর (ফন্ট) | ফন্ট অনুসারে গ্লিফ পার্থক্য, গ্লিফ অনুপস্থিতি | একই ডেটায় আলাদা আকার; □ (টোফু) হয়ে যাওয়া | ফন্ট এক করুন বা বদলান; এম্বেড করুন |
ভাগের ইঙ্গিত হিসেবে “�” ও “□”-এর পার্থক্য মনে রাখা উপকারী। U+FFFD (REPLACEMENT CHARACTER)-এর “�” ডেটা স্তরে রূপান্তর ব্যর্থতার চিহ্ন, আর মূল অক্ষর ইতিমধ্যে হারিয়েছে। “□” অন্যদিকে অনেক ক্ষেত্রে শুধু এটুকু যে ডেটা এখনও আছে কিন্তু ফন্টে গ্লিফ নেই, আর ফন্ট বদলালে প্রদর্শিত হতে পারে।
flowchart TB
accTitle: লক্ষণকে � বনাম □ দিয়ে ভাগা
accDescr: অক্ষর সঠিক প্রদর্শিত না হলে � ডেটা স্তরে রূপান্তর ব্যর্থতার চিহ্ন যেখানে মূল অক্ষর হারিয়েছে; □ শুধু এটুকু যে ডেটা এখনও আছে কিন্তু ফন্টে গ্লিফ নেই, আর ফন্ট বদলালে প্রদর্শিত হতে পারে
symptom["অক্ষর সঠিক প্রদর্শিত হয় না"] --> which{"কী দেখা যায়?"}
which -->|� দেখা যায়| datalayer["ডেটা-স্তর দুর্ঘটনা"]
datalayer -.-> lost["রূপান্তর ব্যর্থতার চিহ্ন (মূল অক্ষর হারিয়েছে)"]
which -->|□ দেখা যায়| viewlayer["দেখা-স্তর দুর্ঘটনা"]
viewlayer -.-> noglyph["শুধু এটুকু যে ফন্টে গ্লিফ নেই"]
noglyph --> fixable["ফন্ট বদলালে প্রদর্শিত হতে পারে"]
চিত্র ২: � ডেটা-স্তর দুর্ঘটনার চিহ্ন, □ দেখা-স্তর দুর্ঘটনার, আর অনুসন্ধানের প্রবেশ বিন্দু বদলায়।
এনকোডিংয়ের ভিত্তি নিজে (CP932 ও UTF-8, BOM, নিউলাইন কোড) “Windows পাঠ্য এনকোডিংয়ের পরিচিতি - Linux-এর সাথে একীকরণে যে মোজিবাকে হয়” ও “Windows পাঠ্য এনকোডিং ও লাইন শেষ - মোজিবাকে ও CRLF/LF-এর ভিত্তি“-এ কভার। এখান থেকে দেখা স্তর, আর তার সীমানায় যে সমস্যা ঘটে।
৩. JIS90 থেকে JIS2004 — কোড একই রইল, গ্লিফ বদলাল
খোলার “葛 স্ক্রিন ও ফর্মে আলাদা দেখায়”-এর পরিচয় অনেক ক্ষেত্রে এখানে।
জাতীয় ভাষা পরিষদের ২০০০ প্রতিবেদন “Hyogai Kanji Jitaihyo” (জোয়ো তালিকার বাইরের কানজির রূপের সারণি) অনুসারে, ২০০৪ সংশোধন JIS X 0213:2004 (সাধারণত JIS2004) ১৬৮ কানজির উদাহরণ গ্লিফ মুদ্রণ-মানক রূপে সংশোধন করেছে, তথাকথিত কাংশি অভিধান রূপের কাছাকাছি। 葛, 辻, 飴, 芦, 溢, 餅 প্রতিনিধি উদাহরণ।1
Windows এর সাথে মিলিয়ে Windows Vista থেকে MS Gothic / MS Mincho (ও নতুন Meiryo)-তে JIS2004 গ্লিফ ডিফল্ট করেছে। বর্তমান MS Gothic-ও JIS2004-ভিত্তিক ডিফল্ট গ্লিফ রাখে, সেই কাঠামোয় যে JIS90-যুগ গ্লিফ OpenType jp90 ফিচার দিয়ে পাওয়া যায়।21
flowchart TB
accTitle: বর্তমান MS Gothic-এর গ্লিফ কাঠামো
accDescr: Vista থেকে MS Gothic-এর ডিফল্ট JIS2004 গ্লিফ, আর OpenType jp90 ফিচার দিয়ে JIS90-যুগ গ্লিফে পৌঁছানো কাঠামো
msg["MS Gothic (Vista থেকে)"] --> def["ডিফল্ট গ্লিফ: JIS2004-ভিত্তিক"]
msg --> feat["jp90 ফিচার দিয়ে"]
feat --> old["JIS90-যুগ গ্লিফ"]
চিত্র ৩: বর্তমান MS Gothic-এর ডিফল্ট JIS2004 গ্লিফ, আর jp90 ফিচার দিয়ে JIS90 গ্লিফে সুইচ করতে পারে।
এখানে মানে শুধু ফন্ট বদলেছে; ডেটা একেবারে বদলায়নি।
- 葛-এর কোড পয়েন্ট XP ও Windows 11 দুয়েই U+845B
- XP-তে (JIS90 গ্লিফ) সেই রূপ দেখায় যা মোড়ানো র্যাডিকেলের ভিতরকে ヒ সরল করে; Vista থেকে (JIS2004 গ্লিফ) সেই রূপ দেখায় যা ভিতরে 人-ও লেখে
- তাই পুরনো সিস্টেমে মুদ্রিত ফর্মের স্ক্যান ছবি ও নতুন PC-এর স্ক্রিন প্রদর্শন অক্ষরের আকারে অসম্মত। ডেটা তুলনা সম্পূর্ণ মেলে
辻-এর শিননিয়ো র্যাডিকেলে এক বিন্দু না দুই, 飴-এর “খাও” র্যাডিকেলের রূপ, ইত্যাদি একই। এই ইতিহাস না জানলে অনুসন্ধান “মাইগ্রেশনে ডেটা নষ্ট হয়েছে” ভুল দিকে যায়। মাইগ্রেশনের আগে-পরে অক্ষরের দেখা আলাদা বলা হলে আগে কোড পয়েন্ট তুলনা করুন, আর মিললে ফন্ট গ্লিফ পার্থক্য সন্দেহ করুন — সেই সঠিক ক্রম।
flowchart TB
accTitle: একই কোড পয়েন্ট, ফন্ট অনুসারে আলাদা গ্লিফ
accDescr: 葛-এর কোড পয়েন্ট U+845B XP ও Windows 11 দুয়েই একই থাকে; শুধু প্রদর্শিত আকার JIS90-গ্লিফ ফন্ট ও JIS2004-গ্লিফ ফন্টের মধ্যে বদলায়, আর ডেটা তুলনা সম্পূর্ণ মেলে
cp["কোড পয়েন্ট U+845B (葛)"] --> f90["JIS90-গ্লিফ ফন্ট (XP)"]
cp --> f04["JIS2004-গ্লিফ ফন্ট (Vista থেকে)"]
f90 --> g90["যে রূপ ভিতরকে ヒ সরল করে"]
f04 --> g04["মুদ্রণ-মানক রূপ যা ভিতরে 人 লেখে"]
g90 -.-> same["ডেটা তুলনা সম্পূর্ণ মেলে"]
g04 -.-> same
চিত্র ৪: শুধু ফন্ট বদলেছে; কোড পয়েন্ট U+845B প্রতিটি পরিবেশে একই থাকে।
মনে রাখুন অক্ষর নিজে বদলায়নি বলে দুই গ্লিফই “একই অক্ষর”। ব্যক্তিগত নামে অবশ্য ব্যক্তি বা সরকারি অফিস কখনো নির্দিষ্ট রূপে জোর দেয়, আর সেই দাবির “ডেটা হিসেবে” উত্তর পরের বিষয়, IVS।
৪. আদর্শ বৈচিত্র্য নির্বাচক (IVS) — গ্লিফকে ডেটা হিসেবে নির্দিষ্ট করা
IVS (Ideographic Variation Sequence) সেই ব্যবস্থা যা কানজির ঠিক পরে “আদর্শ বৈচিত্র্য নির্বাচক” নামক অদৃশ্য কোড পয়েন্ট রেখে গ্লিফ বৈচিত্র্যকে ডেটা হিসেবে নির্দিষ্ট করে। ব্যবহৃত নির্বাচক U+E0100–U+E01EF (VS17–VS256)।3
কোন “ভিত্তি অক্ষর + নির্বাচক” অনুক্রম কোন গ্লিফকে নির্দেশ করে IVD (Ideographic Variation Database) নামক রেজিস্ট্রি স্থির করে, যা Unicode Consortium পরিচালনা করে। মূল সংগ্রহ নিচের মতো।4
| সংগ্রহ | নিবন্ধিত | উৎস ও ব্যবহার |
|---|---|---|
| Adobe-Japan1 | ২০০৭ | Adobe-এর জাপানি অক্ষর সংগ্রহ। বাণিজ্যিক ফন্টে বৈচিত্র্য গ্লিফ সুইচ করার ভিত্তি |
| Hanyo-Denshi | ২০১০ | হানয়ো-দেন্শি তথ্য বিনিময় পরিবেশ উন্নয়ন কর্মসূচি। পারিবারিক-রেজিস্টার ও মৌলিক বাসিন্দা রেজিস্টার অক্ষরের মতো সরকারি অক্ষরের সাথে মেল |
| Moji_Joho | ২০১৪ | অক্ষর তথ্য প্ল্যাটফর্ম (MJ)-এর সাথে মেল। IPAmj Mincho-এর সাথে ব্যবহার। আগস্ট ২০২৬-এ অতিরিক্ত নিবন্ধনও |
Microsoft-এর নথি উদাহরণ দেয় যে একা U+845B (葛) নিশি-কাসাই স্টেশনের লেখায় ব্যবহৃত, আর U+845B+U+E0100 (VS17) নারার কাৎসুরাগি শহরের লেখায়। একই 葛, কিন্তু কোন গ্লিফ তা ডেটা হিসেবে আলাদা করা যায়।3
flowchart TB
accTitle: IVS দিয়ে একই 葛-কে ডেটা হিসেবে আলাদা করার উদাহরণ
accDescr: একা U+845B হিসেবে 葛 নিশি-কাসাই স্টেশনের লেখায় ব্যবহৃত; U+845B-এর পর VS17-এর অনুক্রম কাৎসুরাগি শহরের লেখায় ব্যবহৃত; কোন অনুক্রম কোন গ্লিফকে নির্দেশ করে IVD রেজিস্ট্রি স্থির করে
seq1["একা U+845B"] --> gl1["নিশি-কাসাই স্টেশনের লেখায় ব্যবহৃত গ্লিফ"]
seq2["U+845B + VS17"] --> gl2["কাৎসুরাগি শহরের লেখায় ব্যবহৃত গ্লিফ"]
ivd["IVD (রেজিস্ট্রি)"] -.-> gl1
ivd -.-> gl2
চিত্র ৫: একই 葛-এও নির্বাচকের উপস্থিতি বা অনুপস্থিতি দিয়ে কোন গ্লিফ তা ডেটা হিসেবে আলাদা করতে পারেন।
৪.১. অসমর্থিত পরিবেশে আচরণ
ফন্ট পক্ষে IVS ও গ্লিফের সঙ্গতি OpenType cmap সারণিতে (ফরম্যাট ১৪) বাস্তবায়িত।5 সমর্থক ফন্ট (IPAmj Mincho ইত্যাদি) ও সমর্থক অ্যাপ দুই থাকলে নির্দিষ্ট গ্লিফ আসে; না থাকলে নিচের মতো হয়।
- নির্দিষ্ট সঠিক আচরণ: নির্বাচক উপেক্ষা করে ভিত্তি অক্ষরের ডিফল্ট গ্লিফ প্রদর্শিত (নির্বাচক নিজে অদৃশ্য)
- পুরনো অ্যাপ ও কিছু অঙ্কন স্ট্যাক: নির্বাচক স্বাধীন অজানা অক্ষর ধরা হয়, আর অতিরিক্ত □ প্রদর্শিত হয়
অর্থাৎ IVS এমনভাবে ডিজাইন যে “ক্ষয় হলেও ভিত্তি অক্ষর পাঠযোগ্য থাকে”, কিন্তু “সবসময় নির্দিষ্ট গ্লিফে প্রদর্শিত হবে” গ্যারান্টি গ্রহীতার পরিবেশের উপর নির্ভর করে। সরকারি বাসিন্দা-রেকর্ড ও পারিবারিক-রেজিস্টার সিস্টেম অক্ষর তথ্য প্ল্যাটফর্ম ফন্ট প্লাস IVS-এর সংযোগ ব্যবহার করে, কিন্তু সাধারণ ব্যবসায়িক সিস্টেম অসতর্কভাবে গ্রহণ করলে গ্লিফ প্রদর্শন, মুদ্রণ বা ডাউনস্ট্রিম সিস্টেমে কোথাও পড়বে।
flowchart TB
accTitle: IVS-যুক্ত ডেটা কীভাবে প্রদর্শিত হয়
accDescr: সমর্থক ফন্ট ও সমর্থক অ্যাপ দুই থাকলে নির্দিষ্ট গ্লিফ দেখায়; না থাকলে নির্বাচক উপেক্ষা করে ভিত্তি অক্ষরের ডিফল্ট গ্লিফ দেখায়; পুরনো অ্যাপ ও কিছু অঙ্কন স্ট্যাকে নির্বাচক অজানা অক্ষর ধরা হয় আর অতিরিক্ত □ দেখায়
ivs["ভিত্তি + IVS নির্বাচক"] --> env{"সমর্থক ফন্ট + অ্যাপ?"}
env -->|হ্যাঁ| ok["নির্দিষ্ট গ্লিফ"]
env -->|না| other{"কীভাবে আঁকা হয়?"}
other -->|উপেক্ষা| ignore["ডিফল্ট গ্লিফ"]
other -->|পুরনো / কিছু স্ট্যাক| tofu["অতিরিক্ত □"]
ignore -.-> spec["নির্দিষ্ট সঠিক"]
চিত্র ৬: IVS ক্ষয় হলেও ভিত্তি অক্ষর হিসেবে পাঠযোগ্য থাকে, কিন্তু নির্দিষ্ট গ্লিফ আসবে কি না গ্রহীতার পরিবেশের উপর নির্ভর করে।
৪.২. বাস্তবায়ন সতর্কতা — “এক অক্ষর” চার কোড একক পর্যন্ত হতে পারে
U+E0100 থেকে IVS নির্বাচক সম্পূরক সমতলের কোড পয়েন্ট, তাই UTF-16-এ সবসময় সারোগেট জোড়া (দুই কোড একক)। ভিত্তি অক্ষর সম্পূরক-সমতল কানজি হলে (যেমন 𠮟 (U+20B9F), JIS2004-এ যোগ) ভিত্তি একাই ইতিমধ্যে দুই কোড একক, আর যে অনুক্রম ব্যবহারকারী “এক অক্ষর” মনে করেন UTF-16-এ চার কোড একক পর্যন্ত, আর UTF-8-এ আট বাইট পর্যন্ত।
- C#-এর
"葛󠄀"(葛+VS17)-এরstring.Length == 3।Substringও নির্দিষ্ট-দৈর্ঘ্য কাটা ভিত্তি অক্ষরকে নির্বাচক থেকে আলাদা করার ঝুঁকি রাখে - অক্ষর-গণনা ও কাটার যাচাই গ্র্যাফেম এককে হোক (
StringInfo-এর মতো API), কোড এককে নয় - DB কলাম দৈর্ঘ্যের জন্য (SQL Server-এর
nvarchar(n)UTF-16 কোড এককে), IVS গ্রহণ করলে দৃশ্যমান অক্ষর-গণনার দুই থেকে চার গুণ সংস্থান করুন - খোঁজ ও তুলনায় নির্বাচকের উপস্থিতি বা অনুপস্থিতি আলাদা স্ট্রিং করে। “葛”-এর খোঁজ “葛+VS17”-এ লাগবে কি না প্রয়োজন হিসেবে স্থির করে বাস্তবায়ন করুন
flowchart TB
accTitle: একটি IVS-যুক্ত অক্ষর ও UTF-16 কোড একক
accDescr: ভিত্তি অক্ষর ও আদর্শ বৈচিত্র্য নির্বাচকের অনুক্রম যা ব্যবহারকারী এক অক্ষর মনে করেন নির্বাচকের জন্য সবসময় সারোগেট জোড়া, আর ভিত্তি অক্ষর সম্পূরক-সমতল কানজি হলে আরও দুই কোড একক, UTF-16-এ সর্বোচ্চ চার কোড একক
one["এক দৃশ্যমান অক্ষর"] --> base["ভিত্তি অক্ষর"]
one --> vs["বৈচিত্র্য নির্বাচক"]
base -.-> bnote["সম্পূরক হলে +২"]
vs -.-> vnote["সবসময় ২ কোড একক"]
base --> total["৪ UTF-16 একক পর্যন্ত"]
vs --> total
total -.-> risk["নির্দিষ্ট কাটায় ভাঙা"]
চিত্র ৭: একটি IVS-যুক্ত অক্ষর UTF-16-এ চার কোড একক পর্যন্ত হতে পারে; কোড একক দিয়ে কাটা বিপজ্জনক।
৫. গাইজি (EUDC) — যে অক্ষর শুধু সেই PC-তে দেখায়
গাইজি সেই ব্যবস্থা যেখানে ব্যবহারকারী Unicode ব্যক্তিগত-ব্যবহার এলাকার (PUA: U+E000–U+F8FF ইত্যাদি) কোড পয়েন্টে নিজের গ্লিফ বরাদ্দ করেন। ব্যক্তিগত-ব্যবহার এলাকা কোড পয়েন্টের বিশ্বব্যাপী সম্মত অর্থ নেই; একই U+E000 PC ও সংগঠন অনুসারে আলাদা অক্ষর বরাদ্দ হতে পারে।6
Windows-এ আপনি গ্লিফ প্রাইভেট ক্যারেক্টার এডিটর (eudcedit.exe) দিয়ে গড়েন, আর তা eudc.tte নামক ফন্ট ফাইলে সংরক্ষিত হয়। এই ফাইল লুকানো ফন্ট হিসেবে ইনস্টল হয় এবং HKEY_CURRENT_USER\EUDC রেজিস্ট্রিতে প্রতিটি ফন্টের সাথে জোড়ে।7 Shift_JIS (CP932) যুগে গাইজি পরিসর ছিল 0xF040–0xF9FC, আর Unicode রূপান্তরে ব্যক্তিগত-ব্যবহার এলাকায় ম্যাপ হয়।
এই ব্যবস্থার ফল স্পষ্ট।
- eudc.tte সেই PC-এর (সেই ব্যবহারকারীর) এবং ডেটার সাথে অন্য পক্ষে যায় না
- মেইল, PDF, ওয়েব বা অন্য সিস্টেমে পাঠানোর মুহূর্তে □ হয় বা অন্য পক্ষের আলাদা গাইজির মতো দেখায়
- OS মাইগ্রেশন বা PC প্রতিস্থাপনে eudc.tte মাইগ্রেট করতে ভুললে “পুরনো PC-তে দেখা অক্ষর দেখায় না” ঘটে
এটি খোলার দ্বিতীয় পরামর্শের পরিচয়।
flowchart TB
accTitle: গাইজি শুধু সেই PC-তে কেন দেখায়
accDescr: প্রাইভেট ক্যারেক্টার এডিটরে গড়া গ্লিফ eudc.tte-তে সংরক্ষিত হয় এবং সেই PC-এর রেজিস্ট্রিতে ফন্টের সাথে জোড়ে, তাই শুধু ব্যক্তিগত-ব্যবহার এলাকা কোড মেইল, PDF বা অন্য সিস্টেমে গেলে □ হয় বা আলাদা অক্ষর দেখায়
edit["PUA গ্লিফ গড়ুন"] --> tte["eudc.tte-তে সংরক্ষণ"]
edit -.-> editN["প্রাইভেট ক্যারেক্টার এডিটর"]
tte --> reg["রেজিস্ট্রি ফন্ট ম্যাপিং"]
reg --> local["সেই PC-তে দেখায়"]
tte -.-> stay["eudc.tte পেছনে থেকে যায়"]
send["শুধু PUA কোড যায়"] --> dest["মেইল / PDF / অন্য সিস্টেম"]
dest --> broken["□ বা ভুল অক্ষর"]
local ~~~ send
চিত্র ৮: গ্লিফ eudc.tte-তে থাকে; ডেটায় শুধু ব্যক্তিগত-ব্যবহার এলাকা সংখ্যা থাকে, তাই গাইজি PC ছাড়লে ভাঙা দেখায়।
৫.১. আগে থেকে গাইজি পাওয়া সিস্টেমের বাস্তব উত্তর
সমস্যা তখন যখন উত্তরাধিকার সিস্টেম থেকে আসা ডেটায় আগে থেকে গাইজি মেশানো। মাইগ্রেশন কাজে আমরা যে পদ্ধতি সুপারিশ করি তা নিচের মতো।
- অনুসন্ধান: ডেটাবেস ও ফাইল ব্যক্তিগত-ব্যবহার এলাকার (U+E000–U+F8FF) রেগুলার এক্সপ্রেশন দিয়ে স্ক্যান করুন, আর ব্যবহারে গাইজি কোড ও তাদের গণনা তালিকা করুন। প্রতিটি সাইটের PC থেকে eudc.tte সংগ্রহ করে গ্লিফ নিশ্চিত করুন
- শনাক্ত: প্রতিটি গাইজির জন্য অনুসন্ধান করুন “নিয়মিত Unicode অক্ষর হিসেবে প্রকাশ করা যায়”, “IVS দিয়ে প্রকাশ করা যায়”, “অক্ষর তথ্য প্ল্যাটফর্ম (MJ)-এ সংগত অক্ষর আছে”, আর বিকল্প-অক্ষর সঙ্গতি সারণি গড়ুন। বাস্তবে বেশিরভাগ ক্ষেত্র শুধু এটুকু যে পুরনো রূপ JIS গাইজি হিসেবে গড়া হয়েছিল
- প্রতিস্থাপন: সঙ্গতি সারণি থেকে ডেটা প্রতিস্থাপন করুন। শুধু যখন সত্যি সংগত অক্ষর নেই, ছবি হিসেবে রাখুন বা সেই রেকর্ডে নোট যোগ করুন
- কাটা: নতুন সিস্টেমে যাচাইয়ে ব্যক্তিগত-ব্যবহার এলাকা ইনপুট প্রত্যাখ্যান করুন, আর নতুন গাইজি গড়বেন না
flowchart TB
accTitle: গাইজি-যুক্ত ডেটা মাইগ্রেট করার পদ্ধতি
accDescr: ব্যক্তিগত-ব্যবহার এলাকা স্ক্যান করে ও eudc.tte সংগ্রহ করে ব্যবহারে গাইজি তালিকা করুন, বিকল্প-অক্ষর সঙ্গতি সারণি গড়ে প্রতিস্থাপন করুন, আর নতুন সিস্টেমে যাচাইয়ে ব্যক্তিগত-ব্যবহার এলাকা ইনপুট প্রত্যাখ্যান করুন এবং নতুন গাইজি গড়বেন না
st1["অনুসন্ধান: PUA স্ক্যান"] --> st2["শনাক্ত: বিকল্প সারণি"]
st2 --> st3["সারণি থেকে প্রতিস্থাপন"]
st3 --> st4["কাটা: কোনো নতুন গাইজি নয়"]
st1 -.-> tte["eudc.tte সংগ্রহ"]
st2 -.-> nomap["ম্যাপ নেই: ছবি বা নোট"]
চিত্র ৯: গাইজিকে অনুসন্ধান, শনাক্ত, প্রতিস্থাপন ও কাটার চার ধাপে মাইগ্রেট করুন, আর নতুন গাইজি গড়বেন না।
সরকার পক্ষে দিক একই: পৌরসভাগুলোর নিজে গড়া গাইজি (দেশজুড়ে প্রায় দুই মিলিয়ন অক্ষর বলা হয়) পরের প্রশাসনিক বিষয়ের মানক অক্ষরের বিরুদ্ধে অনন্য শনাক্ত করার, এবং ব্যবহার থামানোর নীতি বলা হয়েছে।10 “গাইজি বাড়াবেন না; সেগুলোকে মানক অক্ষর সেটের বিরুদ্ধে শনাক্ত করুন” সরকারি ও বেসরকারি দুই ক্ষেত্রেই প্রতিষ্ঠিত মাইগ্রেশন প্যাটার্ন হয়ে উঠছে।
৬. সরকারি অক্ষর প্ল্যাটফর্ম — কোসেকি একীভূত অক্ষর থেকে প্রশাসনিক বিষয়ের মানক অক্ষর পর্যন্ত
ব্যক্তিগত নাম সামলানো সিস্টেমের ডিজাইনে সরকার-পক্ষ অক্ষর প্ল্যাটফর্ম জানা “কতদূর গ্রহণ করবেন” স্থির করার উপকরণ হয়।
| নাম | রক্ষক | রূপরেখা |
|---|---|---|
| কোসেকি একীভূত অক্ষর | বিচার মন্ত্রণালয় | পারিবারিক রেজিস্টারের কম্পিউটারায়ণের জন্য সাজানো প্রায় ৫৬,০০০ অক্ষর। বিচার মন্ত্রণালয় সাইটে খোঁজযোগ্য8 |
| জুকি-নেট একীভূত অক্ষর | J-LIS (জাপান স্থানীয় কর্তৃপক্ষ তথ্য সিস্টেম সংস্থা) | মৌলিক বাসিন্দা রেজিস্টার নেটওয়ার্কে ব্যবহৃত প্রায় ২১,০০০ অক্ষর |
| অক্ষর তথ্য প্ল্যাটফর্ম (MJ) | অক্ষর তথ্য প্রযুক্তি প্রসার পরিষদ | প্রশাসনিক কাজে ব্যবহৃত প্রায় ৬০,০০০ অক্ষর, সাজানো। MJ অক্ষর-গ্লিফ নামে পরিচালিত; IPAmj Mincho ফন্ট ও MJ অক্ষর-তথ্য তালিকা প্রকাশিত। IPA প্রকল্প হিসেবে সাজানো এবং এখন পরিষদে হস্তান্তরিত9 |
| প্রশাসনিক বিষয়ের মানক অক্ষর (MJ+) | ডিজিটাল এজেন্সি | অক্ষর সেট যা অক্ষর তথ্য প্ল্যাটফর্মকে সেই পারিবারিক-রেজিস্টার অক্ষর ইত্যাদি দিয়ে সম্প্রসারিত করে যা MJ-এর বিরুদ্ধে শনাক্ত করা যায় না। মানক-অনুযায়ী সিস্টেমে ব্যক্তিগত নাম ইত্যাদি এই অক্ষর সেট ব্যবহার করে; অক্ষর এনকোডিং JIS X 0221:202010 |
পৌরসভা মূল-ব্যবসা সিস্টেমে (মানক-অনুযায়ী সিস্টেম) দুই-স্তর কাঠামো মানক স্পেসিফিকেশনে আছে: ব্যক্তিগত নাম ইত্যাদির তথ্য আন্তঃপরিচালনার জন্য প্রশাসনিক বিষয়ের মানক অক্ষর ব্যবহার করুন, আর একীভূত আন্তঃপরিচালনা নিয়মহীন বাইরের সিস্টেম — স্মার্টফোন ইত্যাদি — JIS X 0213:2012-এর পরিসরে আন্তঃপরিচালনা করুন।10 “ভিতরে চওড়া অক্ষর সেট রাখুন, আর বাইরে সেই সীমায় বিনিময় করুন যা সাধারণ পরিবেশ প্রদর্শন করতে পারে” কাঠামো নিজেই বেসরকারি সিস্টেমের জন্যও রেফারেন্স।
flowchart TB
accTitle: মানক-অনুযায়ী সিস্টেমের দুই-স্তর আন্তঃপরিচালনা
accDescr: পৌরসভা মানক-অনুযায়ী সিস্টেম ব্যক্তিগত নাম ইত্যাদির তথ্য আন্তঃপরিচালনার জন্য প্রশাসনিক বিষয়ের মানক অক্ষর ব্যবহার করে, আর একীভূত আন্তঃপরিচালনা নিয়মহীন স্মার্টফোনের মতো বাইরের সিস্টেমের সাথে JIS X 0213:2012-এর পরিসরে আন্তঃপরিচালনা করে
sys["পৌরসভা মানক সিস্টেম"] --> renkei["নাম আন্তঃপরিচালনা"]
sys --> gaibu["বাইরের সিস্টেম"]
renkei --> mjp["প্রশাসনিক মানক অক্ষর"]
mjp -.-> mjpN["ব্যক্তিগত নাম ইত্যাদি"]
gaibu --> jis["JIS X 0213:2012 পরিসর"]
gaibu -.-> sumaho["নিয়ম নেই (স্মার্টফোন)"]
mjp -.-> naibu["ভিতরে চওড়া সেট রাখা"]
চিত্র ১০: দুই-স্তর কাঠামো: সরকারি আন্তঃপরিচালনা প্রশাসনিক বিষয়ের মানক অক্ষর ব্যবহার করে; নিয়মহীন বাইরের আন্তঃপরিচালনা JIS X 0213:2012 ব্যবহার করে।
সাধারণ ব্যবসায়িক সিস্টেমের জন্য বাস্তব নির্দেশনা হিসেবে আমরা নিচের সুপারিশ করি।
- গ্রহণযোগ্য অক্ষর সেট স্থির করুন এবং তা স্পেসিফিকেশন ও ইনপুট যাচাই দুয়েই বলুন। যেমন “JIS X 0213:2012-এর পরিসর”, “ব্যক্তিগত-ব্যবহার এলাকা ও সংযোগ অক্ষর অনুমোদিত নয়”, “IVS গ্রহণ করা হয় না (বা গ্রহণ করা হয়, কিন্তু প্রদর্শন শুধু IPAmj Mincho পরিবেশে গ্যারান্টি)”
- সীমাহীন গ্রহণ করবেন না। “Unicode, তাই কিছুই চলবে” ডিজাইন প্রদর্শন, মুদ্রণ বা আন্তঃপরিচালনায় কোথাও ভাঙবে
- পরিসর-বহির্ভূত অক্ষরের পরিচালনা আগে স্থির করুন। বিকল্প উপস্থাপন (নতুন রূপ, কাতাকানা) প্রতিস্থাপনের নিয়ম এবং ব্যক্তিকে যে শব্দ ব্যাখ্যা করেন সেগুলোই সিস্টেম স্পেসিফিকেশন
- সরকার বা অর্থের মতো ডাউনস্ট্রিম সিস্টেমের অক্ষর-সেট নিয়ম থাকলে তাকে কর্তৃত্ব ধরুন এবং মেলান
flowchart TB
accTitle: গ্রহণযোগ্য অক্ষর সেট ডিজাইন ও পরিচালনা
accDescr: গ্রহণযোগ্য অক্ষর সেট স্থির করুন এবং তা স্পেসিফিকেশন ও ইনপুট যাচাই দুয়েই বলুন; পরিসরে অক্ষর গ্রহণ করুন; পরিসর-বহির্ভূত অক্ষরের জন্য বিকল্প উপস্থাপন প্রতিস্থাপনের নিয়ম ও ব্যক্তিকে ব্যাখ্যা করা শব্দসহ পরিচালনা স্থির করুন
decide["গ্রহণযোগ্য অক্ষর সেট স্থির করুন"] --> spec["স্পেসিফিকেশনে বলুন"]
decide --> valid["ইনপুট যাচাইয়ে বলুন"]
valid --> range{"পরিসরে?"}
range -->|হ্যাঁ| ok["গ্রহণ করুন"]
range -->|না| alt["বিকল্প উপস্থাপন প্রতিস্থাপন"]
alt -.-> word["ব্যক্তিকে ব্যাখ্যা করা শব্দও স্পেসিফিকেশন"]
চিত্র ১১: গ্রহণযোগ্য অক্ষর সেট স্পেসিফিকেশন ও ইনপুট যাচাই দুয়েই বলুন, আর পরিসর-বহির্ভূত পরিচালনাও স্থির করুন।
৭. ফন্ট বেছে ও এম্বেড করা — স্ক্রিন ও ফর্ম মেলানো
৭.১. সাধারণ ফন্টের চরিত্র
| ফন্ট | কভারেজ | চরিত্র ও কোথায় ব্যবহার করবেন |
|---|---|---|
| MS Gothic / MS Mincho | Windows মানক | নিম্ন-রেজোলিউশন স্ক্রিনের জন্য ডিজাইন করা পুরনো হাত। ডিফল্ট গ্লিফ JIS2004-ভিত্তিক2। উত্তরাধিকার ফর্মের সাথে সামঞ্জস্য রাখতে এখনও সেবায় |
| Meiryo | Vista থেকে | ClearType ধরে নেওয়া আধুনিক স্ক্রিন টাইপফেস। Vista-প্রজন্ম JIS2004 মাইগ্রেশনের সাথে এসেছে1 |
| Yu Gothic / Yu Mincho | Windows 8.1 থেকে | পরিবার যা Windows ও macOS দুয়েই আসে, যাতে নথির দেখা মেলানো সহজ হয় |
| BIZ UD Gothic / BIZ UD Mincho | Windows 10 1809 থেকে | Morisawa সার্বজনীন-ডিজাইন টাইপফেস। ফর্ম ও স্ক্রিন পাঠযোগ্যতায় জোর দেওয়া কাজে প্রথম প্রার্থী14 |
| Noto Sans JP | আলাদা ইনস্টল | ওপেন সোর্স হিসেবে দেওয়া, আর সার্ভার বা Linux পরিবেশে বান্ডিল ও ওয়েবে বিতরণ সহজ |
বাছাইয়ে টাইপফেস পছন্দ থেকে বেশি মানে সেই ফন্ট প্রদর্শন, মুদ্রণ ও PDF তৈরির সাথে জড়িত প্রতিটি পরিবেশে আছে কি না। Windows 10/11-এ জাপানি সম্পূরক ফন্ট (BIZ UD ইত্যাদি) কনফিগারেশন অনুসারে কখনো অনুপস্থিত, আর সার্ভার পক্ষে PDF তৈরি করা কনফিগারেশনে সার্ভারে ফন্টের উপস্থিতি বা অনুপস্থিতির সরাসরি প্রভাব পড়ে।
flowchart TB
accTitle: ফন্ট বাছতে নিশ্চিত করার পরিবেশ
accDescr: ফন্ট বাছাইয়ে টাইপফেস পছন্দ থেকে বেশি মানে সেই ফন্ট প্রদর্শন, মুদ্রণ ও PDF তৈরির সাথে জড়িত প্রতিটি পরিবেশে আছে কি না; সম্পূরক ফন্টের কনফিগারেশন ও সার্ভারে ফন্টের উপস্থিতি বা অনুপস্থিতির সরাসরি প্রভাব পড়ে
cand["প্রার্থী ফন্ট"] --> exist["প্রতিটি পরিবেশে?"]
exist --> scr["প্রদর্শন পরিবেশ"]
exist --> more{"মুদ্রণ বা PDF সার্ভার?"}
more --> prn["মুদ্রণ পরিবেশ"]
more --> srv["PDF-তৈরি সার্ভার"]
scr -.-> hojo["সম্পূরক ফন্ট?"]
hojo -.-> hojoN["অনুপস্থিত হতে পারে"]
srv -.-> eikyo["সার্ভারে ফন্ট মানে রাখে"]
চিত্র ১২: ফন্ট টাইপফেস পছন্দ থেকে কম, প্রদর্শন, মুদ্রণ ও PDF তৈরির প্রতিটি পরিবেশে উপস্থিতি থেকে বেশি বাছুন।
৭.২. ফর্ম ডিজাইনের ভিত্তি — মেলান, এবং এম্বেড করুন
- স্ক্রিন ও ফর্মে একই ফন্ট নির্দিষ্ট করুন। ফন্ট আলাদা হলে একই ডেটা আলাদা গ্লিফ দেখাতে পারে, আর খোলার অভিযোগ পান। “স্ক্রিনে Meiryo, ফর্মে MS Mincho”-এর মতো কনফিগারেশন অন্তত পরীক্ষা হোক ১৬৮ JIS2004 অক্ষরে গ্লিফ পার্থক্য আছে কি না
- PDF-এ ফন্ট এম্বেড করুন। এম্বেড না করলে দেখার পক্ষ হাতে থাকা ফন্ট দিয়ে বিকল্প-অঙ্কন করে, আর শুধু গ্লিফ নয় লেআউটও বদলাতে পারে
- এম্বেডিং অনুমতি লাইসেন্স স্থির করে। OpenType ফন্ট
fsTypeফিল্ডে এম্বেডিং অনুমতি ঘোষণা করে (Installable / Restricted / Preview & Print / Editable, no-subsetting ইত্যাদি), আর যে ফন্টের এম্বেডিং লাইসেন্স নেই সেটি এম্বেড করবেন না।11 বাণিজ্যিক ফন্টের জন্য চুক্তি নিশ্চিত করা প্রয়োজন - সাবসেট এম্বেডিংকে ভিত্তি রেখা করুন। শুধু ব্যবহৃত অক্ষরের গ্লিফ এম্বেড করলে পুরো জাপানি ফন্টের (কয়েক MB থেকে কয়েক দশক MB) ভার নিতে হয় না
- দীর্ঘমেয়াদি-সংরক্ষণ প্রয়োজন হলে PDF/A। PDF/A (ISO 19005) সেই মান যা প্রদর্শনের জন্য প্রয়োজনীয় সম্পদ ফাইলের ভিতরে সম্পূর্ণ করে, আর ফন্ট এম্বেডিং প্রয়োজন।12 “দশ বছর পর খুললাম আর গ্লিফ বদলে গেছে” আটকানোর সবচেয়ে নির্ভরযোগ্য উপায়ও
flowchart TB
accTitle: ফন্ট এম্বেডিংয়ের সিদ্ধান্ত প্রবাহ
accDescr: PDF-এ ফন্ট এম্বেড করার আগে fsType এম্বেডিং লাইসেন্স নিশ্চিত করুন; লাইসেন্স থাকলে সাবসেট এম্বেডিংকে ভিত্তি রেখা করুন; দীর্ঘমেয়াদি-সংরক্ষণ প্রয়োজন হলে PDF/A বিবেচনা করুন, যা এম্বেডিং চায়
emb["PDF-এ ফন্ট এম্বেড করুন"] --> lic{"fsType দিয়ে এম্বেডিং লাইসেন্স?"}
lic -->|লাইসেন্স আছে| sub["সাবসেট এম্বেডিং ভিত্তি রেখা"]
lic -->|লাইসেন্স নেই| ng["এম্বেড করবেন না"]
sub -.-> gly["শুধু ব্যবহৃত অক্ষরের গ্লিফ"]
sub -->|দীর্ঘমেয়াদি-সংরক্ষণ প্রয়োজন| pdfa["PDF/A বিবেচনা করুন"]
pdfa -.-> must["ফন্ট এম্বেডিং প্রয়োজন"]
চিত্র ১৩: এম্বেডিং fsType লাইসেন্স নিশ্চিত ধরে; সাবসেট এম্বেডিং ও PDF/A ভিত্তি রেখা।
মুদ্রণ ও PDF আউটপুটের বাস্তবায়ন উপায় কীভাবে বাছবেন “Windows ব্যবসায়িক অ্যাপে মুদ্রণ ও PDF আউটপুট“-এ গভীরে কভার।
৮. ফন্ট লিঙ্কিং ও ফলব্যাক — “আলাদা ফন্ট মেশে” ঘটনা
যে অক্ষরের নির্দিষ্ট ফন্টে গ্লিফ নেই সেটি কিছু না দেখিয়ে থাকে না; অন্য ফন্টে বিকল্প-অঙ্কন আধুনিক অঙ্কন স্ট্যাকের ডিফল্ট আচরণ। GDI-তে রেজিস্ট্রিতে (FontLink\SystemLink) সংজ্ঞায়িত “ফন্ট লিঙ্কিং” এটি করে; DirectWrite, WPF ও ব্রাউজারে “ফন্ট ফলব্যাক” করে।15
flowchart TB
accTitle: ফন্ট লিঙ্কিং ও ফলব্যাকের প্রবাহ
accDescr: নির্দিষ্ট ফন্টে গ্লিফ থাকলে যেমন-তেমন দেখায়; না থাকলে লিঙ্ক বা ফলব্যাক ফন্টে বিকল্প-অঙ্কন হয়; কোথাও গ্লিফ না থাকলে □ হয়, কিন্তু ডেটা প্রায়ই এখনও জীবিত
disp["অক্ষর প্রদর্শন করুন"] --> has{"নির্দিষ্ট ফন্টে গ্লিফ?"}
has -->|হ্যাঁ| draw["নির্দিষ্ট ফন্টে প্রদর্শন"]
has -->|না| fb{"লিঙ্ক বা ফলব্যাক লক্ষ্যে আছে?"}
fb -->|হ্যাঁ| alt["অন্য ফন্টে বিকল্প-অঙ্কন"]
alt -.-> mixed["মিশ্র টাইপফেস অনুভূতির কারণ"]
fb -->|না| tofu["□ (টোফু) প্রদর্শিত"]
tofu -.-> alive["ডেটা প্রায়ই এখনও জীবিত"]
চিত্র ১৪: □ ফলব্যাক ব্যর্থতার চিহ্ন; বিকল্প-অঙ্কন সফল কি না “মিশ্র” ও “টোফু”-এর দ্বার।
এই ব্যবস্থা জানা নিচের সাধারণ ক্ষেত্র ব্যাখ্যা দেয়।
- লাতিন ও জাপানির মধ্যে টাইপফেস অনুভূতি আলাদা: কারণ লাতিন ফন্ট আগে নির্দিষ্ট ছিল, শুধু জাপানি অংশ লিঙ্ক বা ফলব্যাক জাপানি ফন্টে আঁকা হচ্ছে
- জাপানি বাক্যের শুধু কানজি চীনা-শৈলী গ্লিফ হয়ে যায়: ফলব্যাক লক্ষ্য চীনা ফন্টে সমাধান হয়েছে। সেই ওয়েব পৃষ্ঠা বা অ্যাপে সহজ যেখানে ভাষা তথ্য (lang অ্যাট্রিবিউট বা লোকেল) সঠিক যাচ্ছে না
- টোফু (□) আসে: নির্দিষ্ট ফন্ট বা ফলব্যাক লক্ষ্যে গ্লিফ নেই। অর্থাৎ □ “ফলব্যাক ব্যর্থতার চিহ্ন”, আর ডেটা প্রায়ই এখনও জীবিত
ফলব্যাক স্বস্তি ব্যবস্থা; শুরু থেকে সঠিক ফন্ট বাছার বিকল্প নয়।15 ব্যবসায়িক অ্যাপে সুস্থ অবস্থান “মূল প্রদর্শন ও মুদ্রণ পথে ডিজাইন করা ফন্ট একাই সম্পূর্ণ করুন; ফলব্যাক অপ্রত্যাশিত অক্ষরের বীমা”। বহুভাষী UI-তে ফন্ট বাছাইয়ের চিন্তার জন্য “WinForms/WPF অ্যাপ স্থানীয়করণ“ও দেখুন।
৯. ব্যবসায়িক অ্যাপের জন্য বাস্তবায়ন চেকলিস্ট
শেষে ইনপুট থেকে আন্তঃপরিচালনা পর্যন্ত প্রতিটি স্তরে নিশ্চিত বিন্দু সারণিতে সারাংশ।
| স্তর | প্রতিনিধি দুর্ঘটনা | ডিজাইন ও বাস্তবায়ন বিন্দু |
|---|---|---|
| ইনপুট | পরিবেশ-নির্ভর অক্ষর, IVS-যুক্ত অক্ষর ও ব্যক্তিগত-ব্যবহার এলাকা অক্ষর IME থেকে আসে | গ্রহণযোগ্য অক্ষর সেট স্থির করুন ও যাচাই করুন। পরিসর-বহির্ভূতের জন্য ত্রুটির বদলে নির্দেশনা (বিকল্প উপস্থাপন প্রস্তাব) কাউন্টার কাজ চালিয়ে রাখে |
| স্বাভাবিকীকরণ | অনভিপ্রেত রূপান্তর যেমন NFKC ㈱-কে (株) করা, পূর্ণপ্রস্থ ও অর্ধপ্রস্থ এক করা, ①-কে 1। NFC-ও CJK সামঞ্জস্য আইডিওগ্রাফ (যেমন U+FA19 神)-কে একীভূত আইডিওগ্রাফ U+795E দিয়ে বদলায় | ব্যক্তিগত নাম ও ঠিকানায় NFKC লাগাবেন না। স্বাভাবিকীকরণ ব্যবহার পর্যন্ত সীমাবদ্ধ করুন (খোঁজ কী গড়া ইত্যাদি) এবং মূল যেমন প্রবেশ সংরক্ষণ করুন13 |
| সংরক্ষণ | সারোগেট জোড়া ও IVS থেকে কলাম-দৈর্ঘ্য ঘাটতি; কোড একক দিয়ে কাটা | UTF-8/UTF-16-এ সংরক্ষণ করুন এবং কলাম দৈর্ঘ্য কোড এককে শিথিল দিন। গ্র্যাফেম এককে কাটুন |
| প্রদর্শন | ফন্টে গ্লিফ না থাকায় □; ফলব্যাক দিয়ে গ্লিফ বদল | লক্ষ্য অক্ষর সেট প্রদর্শন করতে পারে এমন ফন্ট স্পষ্ট নির্দিষ্ট করুন, আর লক্ষ্য OS-এ মানক কভারেজ নিশ্চিত করুন |
| মুদ্রণ ও PDF | স্ক্রিন ও ফর্মের মধ্যে গ্লিফ পার্থক্য; দেখার পক্ষে বিকল্প-অঙ্কন | স্ক্রিন ও ফর্মে ফন্ট মেলান, আর লাইসেন্স নিশ্চিত করে PDF-এ সাবসেট-এম্বেড করুন11 |
| অন্য সিস্টেমের সাথে আন্তঃপরিচালনা | JIS X 0213-এর অতিরিক্ত কানজি, IVS ও গাইজি Shift_JIS (CP932) রূপান্তরে ? বা 〓 হয় |
আন্তঃপরিচালনা স্পেসিফিকেশনে অক্ষর এনকোডিং ও অক্ষর সেট বলুন। CP932 আন্তঃপরিচালনা থাকলে অরূপান্তরযোগ্য অক্ষর শনাক্ত ও প্রতিস্থাপন নিয়ম বাস্তবায়ন করুন |
স্বাভাবিকীকরণ বিশেষ করে সেই ফাঁদ যা এই নিবন্ধের বিষয় নিজে: “ভালো উদ্দেশ্যে” লাগানো প্রক্রিয়া যা বৈচিত্র্য অক্ষর ও পূর্ণপ্রস্থ বনাম অর্ধপ্রস্থের পার্থক্য চূর্ণ করে। মূল যেমন-তেমন; অনুলিপিতে প্রক্রিয়াকরণ নীতি। CSV আন্তঃপরিচালনায় অক্ষর-এনকোডিং দুর্ঘটনা “CSV "শুধু পাঠ্য" নয়“-এ গভীরে কভার।
flowchart TB
accTitle: মূল যেমন-তেমন; অনুলিপিতে প্রক্রিয়াকরণ
accDescr: প্রবেশ করা স্ট্রিংকে মূল হিসেবে যেমন-তেমন সংরক্ষণ করুন; খোঁজ কী গড়ার মতো ব্যবহার পর্যন্ত সীমাবদ্ধ অনুলিপিতে স্বাভাবিকীকরণ লাগান; মূলতে NFKC লাগালে বৈচিত্র্য অক্ষর ও পূর্ণপ্রস্থ বনাম অর্ধপ্রস্থের পার্থক্য হারায়
input["প্রবেশ করা স্ট্রিং"] --> orig["মূল: যেমন প্রবেশ সংরক্ষণ"]
input --> copy["অনুলিপি: ব্যবহার পর্যন্ত সীমাবদ্ধ স্বাভাবিকীকরণ"]
copy -.-> use["খোঁজ কী গড়া ইত্যাদি"]
orig -.-> ng["মূলে NFKC পার্থক্য চূর্ণ করে"]
চিত্র ১৫: স্বাভাবিকীকরণ ব্যবহার পর্যন্ত সীমাবদ্ধ করে অনুলিপিতে লাগান; মূল যেমন প্রবেশ সংরক্ষণ করুন।
১০. সারসংক্ষেপ
- অক্ষর-সমস্যা আগে “ডেটা স্তর (অক্ষর এনকোডিং)” ও “দেখা স্তর (ফন্ট)”-এ ভাগ করুন। � ডেটা-স্তর দুর্ঘটনার চিহ্ন, □ দেখা-স্তর দুর্ঘটনার।
- JIS X 0213:2004 ১৬৮ অক্ষরের উদাহরণ গ্লিফ বদলেছে, আর Windows Vista থেকে JIS2004 গ্লিফ ডিফল্ট রাখে। 葛, 辻 ও 飴-এর পরিবেশ অনুসারে আলাদা দেখা ফন্টের ইতিহাস, ডেটা নষ্ট নয়।
- গ্লিফকে ডেটা হিসেবে স্থির করার মানক উপায় IVS, কিন্তু সমর্থক ফন্ট ও সমর্থক অ্যাপ ছাড়া ডিফল্ট গ্লিফে পড়ে। বাস্তবায়ন প্রভাব ভুলবেন না যে এক অক্ষর চার UTF-16 কোড একক পর্যন্ত হতে পারে।
- গাইজি (EUDC) সেই PC-নির্দিষ্ট সম্পদ এবং ডেটার সাথে যেতে পারে না। বাস্তব উত্তর মাইগ্রেশনে তালিকা করা, সঙ্গতি সারণি থেকে নিয়মিত অক্ষর বা IVS-এ প্রতিস্থাপন, এবং নতুন গড়া থামানো।
- ব্যক্তিগত নাম সামলানো সিস্টেম গ্রহণযোগ্য অক্ষর সেট স্থির করুক ও বলুক। সরকার কোসেকি একীভূত অক্ষর ও অক্ষর তথ্য প্ল্যাটফর্মের ভিত্তিতে প্রশাসনিক বিষয়ের মানক অক্ষরের দিকে মানক করছে, আর আন্তঃপরিচালনা করা সিস্টেম সেই গতি অনুসরণ করুক।
- ফর্ম ও PDF-এর জন্য “ফন্টকে স্ক্রিনের সাথে মেলান, লাইসেন্স নিশ্চিত করুন, এবং এম্বেড করুন” ভিত্তি রেখা। দীর্ঘমেয়াদি সংরক্ষণের জন্য PDF/A বিবেচনা করুন।
- NFKC স্বাভাবিকীকরণ, কোড একক দিয়ে কাটা, এবং CP932 রূপান্তর সেই তিন বিন্দু যা চুপিচুপি বৈচিত্র্য অক্ষর ও গাইজি ভাঙে। মূল সংরক্ষণ ও গ্র্যাফেম এককে প্রক্রিয়াকরণ নীতি করুন।
পরেরবার “অক্ষর আলাদা” বলা হলে আগে প্রশ্ন এভাবে নতুন করে গড়ুন। কোড পয়েন্ট এক, না আলাদা? এক হলে ফন্ট সমস্যা; আলাদা হলে ডেটা সমস্যা। সেই এক চাল অনুসন্ধানের ভুল প্রবেশ বিন্দু থেকে বাঁচায়।
flowchart TB
accTitle: প্রথম প্রশ্ন যা অনুসন্ধানের প্রবেশ বিন্দু স্থির করে
accDescr: অক্ষর আলাদা বলা হলে আগে তুলনা করুন কোড পয়েন্ট এক না আলাদা; এক হলে অনুসন্ধান ফন্ট সমস্যা হিসেবে শুরু করুন, আলাদা হলে ডেটা সমস্যা হিসেবে
said["বলা হয়েছে অক্ষর আলাদা"] --> cmp{"কোড পয়েন্ট এক?"}
cmp -->|এক| fontp["ফন্ট সমস্যা"]
cmp -->|আলাদা| datap["ডেটা সমস্যা"]
চিত্র ১৬: কোড পয়েন্ট এক হলে অনুসন্ধান ফন্ট সমস্যা হিসেবে শুরু করুন; আলাদা হলে ডেটা সমস্যা হিসেবে।
সম্পর্কিত নিবন্ধ
- Windows পাঠ্য এনকোডিংয়ের পরিচিতি - Linux-এর সাথে একীকরণে যে মোজিবাকে হয়
- Windows পাঠ্য এনকোডিং ও লাইন শেষ - মোজিবাকে ও CRLF/LF-এর ভিত্তি
- Windows ব্যবসায়িক অ্যাপে মুদ্রণ ও PDF আউটপুট — System.Drawing.Printing, WPF ও রিপোর্ট লাইব্রেরির মধ্যে বাছাই
- WinForms/WPF অ্যাপ স্থানীয়করণ — resx, স্যাটেলাইট অ্যাসেম্বলি, ও সংস্কৃতি সুইচ ব্যবহারে
- CSV “শুধু পাঠ্য” নয়: C# ব্যবসায়িক অ্যাপে CSV সামলানোর বাস্তব নির্দেশিকা (এনকোডিং, Excel সামঞ্জস্য, ইনজেকশন প্রতিরক্ষা)
- Windows অ্যাপ অ্যাক্সেসিবিলিটির পরিচিতি — UI Automation ও যুক্তিসঙ্গত সমন্বয়ের প্রয়োজনীয়তার প্রস্তুতি
সম্পর্কিত পরামর্শ ক্ষেত্র
KomuraSoft LLC ব্যবসায়িক সিস্টেমে অক্ষরের আশেপাশে ডিজাইন ও অনুসন্ধান সামলায়। “স্ক্রিন ও ফর্মে অক্ষর আলাদা” বা “মাইগ্রেশনের পর ব্যক্তিগত নাম □ হয়েছে”-এর মতো লক্ষণের কারণ আলাদা করা থেকে, উত্তরাধিকার সিস্টেম থেকে মাইগ্রেশনে গাইজি তালিকা ও বিকল্প-অক্ষর সারণি গড়া, ব্যক্তিগত নাম সামলানো সিস্টেমের গ্রহণযোগ্য অক্ষর সেট ডিজাইন, এবং ফর্ম ও PDF-এর ফন্ট-এম্বেডিং কনফিগারেশন পর্যালোচনা পর্যন্ত, আমরা কোড স্তর ও ফন্ট স্তর দুই কভার করি।
- Windows অ্যাপ্লিকেশন ডেভেলপমেন্ট
- বিদ্যমান অ্যাসেটের পুনর্ব্যবহার ও মাইগ্রেশন
- টেকনিক্যাল কনসালটিং ও ডিজাইন রিভিউ
- যোগাযোগ করুন
তথ্যসূত্র
-
Morisawa Inc., JIS X 0213:2004 (JIS2004) | Font glossary. JIS X 0213:2004-এ Hyogai Kanji Jitaihyo অনুসরণ করে ১৬৮ কানজির উদাহরণ গ্লিফ মুদ্রণ-মানক রূপে (তথাকথিত কাংশি অভিধান রূপ) সংশোধিত হওয়া নিয়ে; এবং Windows Vista-তে JIS2004-সক্ষম ফন্ট মানক অন্তর্ভুক্ত হওয়া নিয়ে। ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, MS Gothic font family. MS Gothic পরিবারের ডিফল্ট গ্লিফ JIS2004-ভিত্তিক হওয়া নিয়ে, এবং OpenType ‘jp90’ ফিচার দিয়ে JIS90 উত্তরাধিকার গ্লিফে পৌঁছানো নিয়ে। ↩ ↩2 ↩3
-
Microsoft Learn, The Unicode standard. বৈচিত্র্য অনুক্রম ভিত্তি অক্ষর প্লাস আদর্শ বৈচিত্র্য নির্বাচক (VS1–VS256, U+FE00–U+FE0F ও U+E0100–U+E01EF) দিয়ে গড়া নিয়ে; U+845B 葛-কে U+845B+U+E0100 (VS17) থেকে আলাদা করার উদাহরণ নিয়ে (নিশি-কাসাই স্টেশন ও কাৎসুরাগি শহর); এবং প্রদর্শনের জন্য সমর্থক ফন্ট প্রয়োজন নিয়ে। ↩ ↩2 ↩3
-
Unicode Consortium, Ideographic Variation Database. UTS #37-ভিত্তিক IVS রেজিস্ট্রি। Adobe-Japan1 (২০০৭), Hanyo-Denshi (২০১০) ও Moji_Joho (২০১৪)-এর মতো সংগ্রহ নিবন্ধিত হওয়া নিয়ে, এবং আগস্ট ২০২৬ সংস্করণে Moji_Joho সংগ্রহে অতিরিক্ত নিবন্ধনও হওয়া নিয়ে। ↩ ↩2
-
Microsoft Learn, cmap — Character to Glyph Index Mapping Table (OpenType spec). OpenType ফন্ট cmap উপসারণি ফরম্যাট ১৪-এ Unicode বৈচিত্র্য অনুক্রম বাস্তবায়ন নিয়ে; ডিফল্ট ও অ-ডিফল্ট UVS-এর পার্থক্য নিয়ে; এবং JIS2004-সক্ষম ফন্টে ব্যবহার উদাহরণ নিয়ে। ↩ ↩2
-
Microsoft Learn, End-User-Defined and Private Use Area Characters. গাইজি (EUDC) ও ব্যক্তিগত-ব্যবহার এলাকা (PUA) অক্ষর ব্যবহারকারী বা সংগঠন দ্বারা স্বাধীন সংজ্ঞায়িত হওয়া নিয়ে, এবং একই কোড পয়েন্ট কম্পিউটার অনুসারে আলাদা বরাদ্দ — ও সংঘর্ষ — রাখতে পারা নিয়ে। ↩ ↩2
-
Microsoft Learn, Character Sets and Fonts. PUA (U+E000–U+F8FF ইত্যাদি) Unicode EUDC উদ্দেশ্যে ব্যবহৃত হওয়া নিয়ে; প্রাইভেট ক্যারেক্টার এডিটরে গ্লিফ গড়া নিয়ে; এবং EUDC ফন্ট .tte ফাইল হিসেবে লুকিয়ে ইনস্টল হয়ে HKEY_CURRENT_USER\EUDC রেজিস্ট্রিতে ফন্টের সাথে জোড়া নিয়ে। ↩ ↩2
-
Ministry of Justice, Koseki Unified Character Information — search-condition input. বিচার মন্ত্রণালয় প্রদত্ত কোসেকি একীভূত অক্ষরের সরকারি খোঁজ সাইট। পারিবারিক রেজিস্টারে ব্যবহৃত অক্ষরের গ্লিফ, পাঠ ও সংশ্লিষ্ট তথ্য খোঁজা নিয়ে। ↩ ↩2
-
Character Information Technology Promotion Council, Character Information Platform project. অক্ষর তথ্য প্ল্যাটফর্ম (MJ অক্ষর গ্লিফ, MJ অক্ষর-তথ্য তালিকা ও IPAmj Mincho ফন্ট) নিয়ে, যা IPA অর্থনীতি, বাণিজ্য ও শিল্প মন্ত্রণালয় ইত্যাদির সমর্থনে সাজিয়েছে এবং প্রশাসনিক কাজে ব্যবহৃত প্রায় ৬০,০০০ কানজি কভার করে, এখন পরিষদে হস্তান্তরিত ও প্রকাশিত। ↩ ↩2
-
Digital Agency, Report of the Study Group on the Operation of Character Requirements in Local-Government Information Systems (July 2024). পৌরসভায় ব্যবহৃত গাইজি প্রায় দুই মিলিয়ন অক্ষর বলা নিয়ে; অক্ষর তথ্য প্ল্যাটফর্মের সম্প্রসারণ “প্রশাসনিক বিষয়ের মানক অক্ষর” (সাধারণত MJ+) মানক-অনুযায়ী সিস্টেমে ব্যক্তিগত নাম ইত্যাদির অক্ষর সেট হওয়া নিয়ে, অক্ষর এনকোডিং JIS X 0221:2020; ব্যক্তিগত নাম ইত্যাদির তথ্য আন্তঃপরিচালনার জন্য প্রশাসনিক বিষয়ের মানক অক্ষর, আর স্মার্টফোন ইত্যাদির সাথে আন্তঃপরিচালনার জন্য JIS X 0213:2012 ব্যবহার নিয়ে; এবং প্রথাগত গাইজিকে প্রশাসনিক বিষয়ের মানক অক্ষরের বিরুদ্ধে অনন্য শনাক্ত করে ব্যবহার না করার নীতি নিয়ে। ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, OS/2 — OS/2 and Windows Metrics (OpenType spec). ফন্টের fsType ফিল্ড এম্বেডিং লাইসেন্স সংজ্ঞায়িত করা নিয়ে (Installable / Restricted License / Preview & Print / Editable, no-subsetting বিট ইত্যাদি), এবং অ্যাপ্লিকেশনকে সেই ফন্ট এম্বেড করার অনুমতি না থাকা নিয়ে যার এম্বেডিং লাইসেন্স নেই। ↩ ↩2 ↩3
-
PDF Association, PDF/A Basics. দীর্ঘমেয়াদি-সংরক্ষণ PDF/A (ISO 19005) নথি প্রদর্শনের জন্য প্রয়োজনীয় উপাদান ফাইলের ভিতরে অন্তর্ভুক্ত করার দাবি নিয়ে, ফন্ট এম্বেডিং প্রতিনিধি প্রয়োজনীয় উদাহরণ। ↩ ↩2
-
Microsoft Learn, Using Unicode Normalization to Represent Strings. চার Unicode স্বাভাবিকীকরণ রূপ NFC/NFD/NFKC/NFKD নিয়ে; এবং KC/KD রূপ পূর্ণপ্রস্থ ও অর্ধপ্রস্থের মতো সামঞ্জস্য অক্ষর এক করে তথ্য হারানো নিয়ে, তাই সাধারণত স্ট্রিংয়ের প্রামাণিক সংরক্ষিত রূপ হিসেবে উপযুক্ত নয়। ↩ ↩2
-
Microsoft Learn, BIZ UDGothic font family. Morisawa সার্বজনীন-ডিজাইন টাইপফেস BIZ UD Gothic Windows 10 সংস্করণ 1809 থেকে জাপানি সম্পূরক ফন্ট হিসেবে অন্তর্ভুক্ত হওয়া নিয়ে। ↩
-
Microsoft Learn, Fonts (Globalization documentation). ফন্ট ফলব্যাক ব্যবস্থা নিয়ে; GDI ফন্ট লিঙ্কিং (FontLink\SystemLink রেজিস্ট্রি) নিয়ে; ডিফল্ট গ্লিফ (টোফু)-এর অর্থ নিয়ে; এবং ফন্ট লিঙ্কিং সঠিক ফন্ট বাছার বিকল্প না হওয়া নিয়ে। ↩ ↩2
সম্পর্কিত নিবন্ধ
কাছাকাছি বিষয়ে গভীরে যেতে একই ট্যাগযুক্ত সাম্প্রতিক নিবন্ধ।
Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ৩) — সেকেন্ডে বুট হওয়া ভার্চুয়াল মেশিন: WSL2, Windows Sandbox ও কন্টেইনার এত হালকা কেন
WSL2 ও Windows Sandbox সেকেন্ডে শুরু হয়ে এত হালকা মনে হয় কেন? এই নিবন্ধ ডায়নামিক বেস ইমেজ ও ডাইরেক্ট ম্যাপ থেকে ডায়নামিক মেমরি বরাদ্দ...
Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ২) — কার্নেলও দেখতে পায় না এমন মেমরি: VBS, HVCI ও Credential Guard কীভাবে কাজ করে
সামঞ্জস্যপূর্ণ হার্ডওয়্যারে ক্লিন ইনস্টলে VBS ডিফল্টে চালু থাকে এবং হাইপারভাইজার ও SLAT দিয়ে কার্নেলের চেয়ে শক্তিশালী আইসোলেশন তৈরি কর...
Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ১) — আপনার Windows আসলে কোথায় চলছে? হাইপারভাইজার ও পার্টিশন
Hyper-V চালু করলে হোস্ট Windows নিজেই রুট পার্টিশন হিসেবে হাইপারভাইজারের উপর চলে। এই নিবন্ধ VT-x, SLAT ও VMBus-এর ভূমিকা দিয়ে ভার্চুয়াল...
Win32 থ্রেড পুল API — CreateThreadpoolWork দিয়ে থ্রেড তৈরি না করে কনকারেন্সি
নেটিভ কোডে চারদিকে CreateThread ডাকছেন? এই নিবন্ধ Vista-তে নতুন করে সাজানো Win32 থ্রেড পুল API ব্যাখ্যা করে — work, timer, wait ও io চারট...
নেমড পাইপ ব্যবহারিকভাবে — ডিজাইন থেকে নিরাপত্তা পর্যন্ত Windows-এর মানক IPC
Windows-এর মানক আন্তঃপ্রক্রিয়া যোগাযোগ নেমড পাইপের ব্যবহারিক গাইড। প্রাথমিক উৎস থেকে এই নিবন্ধ বাইট ও মেসেজ মোডের পছন্দ, একাধিক ক্লায়েন...
সম্পর্কিত বিষয়
এই পৃষ্ঠাগুলো বিষয়টিকে সেবা ও সিদ্ধান্তের বৃহত্তর প্রেক্ষাপটে স্থাপন করে।
Windows-এর প্রযুক্তিগত বিষয়
Windows ডেভেলপমেন্ট, বাগ তদন্ত ও বিদ্যমান সম্পদ ব্যবহারের প্রবেশদ্বার।
এই বিষয়ের সাথে সম্পর্কিত সেবা
নিবন্ধটি নিচের সেবাগুলোর সাথে সরাসরি সম্পর্কিত।
Windows অ্যাপ ডেভেলপমেন্ট
ব্যবসায়িক অ্যাপ, ডিভাইস ইন্টিগ্রেশন ও যোগাযোগ টুল, চাহিদা থেকে ডেভেলপমেন্ট পর্যন্ত।
প্রায়শ জিজ্ঞাসিত প্রশ্ন
এই নিবন্ধের বিষয়ে পরামর্শে প্রায়ই আসা প্রশ্ন।
- একই 葛 অক্ষর PC বা মুদ্রিত ফর্ম অনুসারে আলাদা কেন দেখায়?
- এটি মোজিবাকে থেকে বেশি ফন্ট গ্লিফের পার্থক্য। JIS X 0213:2004 (JIS2004) ১৬৮ কানজির উদাহরণ গ্লিফ মুদ্রণ-মানক রূপে সংশোধন করেছে, আর Windows-ও Vista থেকে MS Gothic / MS Mincho ইত্যাদিতে JIS2004 গ্লিফ ডিফল্ট করেছে। 葛, 辻, 飴 প্রতিনিধি উদাহরণ: Unicode কোড পয়েন্ট (ডেটা) একই থাকে, আর শুধু ফন্টের গ্লিফ (দেখা) বদলেছে। ডেটা তুলনা মেলে; XP-যুগ ফর্ম ছবি ও নতুন PC-এর স্ক্রিনের আকারের অমিল নির্দিষ্ট আচরণ। গ্লিফও মেলাতে চাইলে স্ক্রিন ও ফর্মে একই ফন্ট ব্যবহার করুন, অথবা আদর্শ বৈচিত্র্য নির্বাচক দিয়ে গ্লিফ নির্দিষ্ট করুন।
- আদর্শ বৈচিত্র্য নির্বাচক (IVS) ব্যবহার করলে কি প্রতিটি ব্যক্তিগত-নাম গ্লিফ সমস্যা সমাধান হয়?
- না। IVS সেই ব্যবস্থা যা ভিত্তি অক্ষরের ঠিক পরে U+E0100 থেকে নির্বাচক রেখে গ্লিফ ডেটা হিসেবে নির্দিষ্ট করে, আর নির্দিষ্ট গ্লিফ তখনই দেখায় যখন IPAmj Mincho-এর মতো সমর্থক ফন্ট ও সমর্থক অ্যাপ দুই থাকে। অসমর্থিত পরিবেশে নির্দিষ্ট আচরণ নির্বাচক উপেক্ষা করে ভিত্তি অক্ষরের ডিফল্ট গ্লিফ দেখানো; কিছু পরিবেশে নির্বাচক □-ও দেখাতে পারে। আরও, একটি IVS-যুক্ত অক্ষর UTF-16-এ চার কোড একক পর্যন্ত হতে পারে, যা অক্ষর-গণনা, কাটা ও DB কলাম দৈর্ঘ্যের ডিজাইন প্রভাবিত করে। আনলে প্রদর্শন, মুদ্রণ ও ডাউনস্ট্রিম সিস্টেম দিয়ে সমর্থনের পরিসর নিশ্চিত করে ব্যবহার করুন।
- গাইজি (EUDC) হিসেবে নিবন্ধিত অক্ষর অন্য PC বা PDF-এ দেখাবে কি?
- নীতিগতভাবে না। গাইজি সেই ব্যবস্থা যেখানে ব্যবহারকারী সেই PC-এর eudc.tte ফাইলে Unicode ব্যক্তিগত-ব্যবহার এলাকার (U+E000 থেকে) কোড পয়েন্টে গ্লিফ নিবন্ধন করেন; একই কোড পয়েন্ট অন্য PC-তে অসংজ্ঞায়িত বা ভিন্ন গ্লিফ। মেইল, PDF বা অন্য সিস্টেমে পাঠানোর পরিণতি তাই □ হওয়া বা ভিন্ন অক্ষর দেখা। গাইজি-যুক্ত উত্তরাধিকার ডেটা আগে থেকে থাকলে মাইগ্রেশনে বাস্তব পথ ব্যক্তিগত-ব্যবহার এলাকার ব্যবহার তালিকা করা, নিয়মিত Unicode অক্ষর বা আদর্শ বৈচিত্র্য নির্বাচকের সাথে সঙ্গতি সারণি গড়া, এবং প্রতিস্থাপন। নতুন সিস্টেমে নতুন গাইজি গড়া এড়ান।
- ব্যবসায়িক সিস্টেম ব্যক্তিগত নামে অক্ষর কতদূর গ্রহণ করবে?
- প্রথম কথা "গ্রহণযোগ্য অক্ষর সেট স্থির করে স্পেসিফিকেশন হিসেবে বলা"। পারিবারিক রেজিস্টারে প্রায় ৫৬,০০০ কোসেকি একীভূত অক্ষর আছে, আর সরকার-মানক অনুযায়ী সিস্টেম প্রশাসনিক বিষয়ের মানক অক্ষরের দিকে যাচ্ছে — অক্ষর তথ্য প্ল্যাটফর্মের সম্প্রসারণ — কিন্তু সাধারণ ব্যবসায়িক সিস্টেম সেই স্তর সীমাহীন গ্রহণে বাধ্য নয়। বাস্তব ডিজাইন "JIS X 0213-এর পরিসর পর্যন্ত" বা "আদর্শ বৈচিত্র্য নির্বাচক বা ব্যক্তিগত-ব্যবহার এলাকা গ্রহণ করবেন না"-এর মতো সীমা স্থির করা, ইনপুটে যাচাই, এবং পরিসর-বহির্ভূত ক্ষেত্রে সতর্কতা বা বিকল্প উপস্থাপন দিয়ে চালানো। শুধু যে সিস্টেম সরকার বা পৌরসভার সাথে আন্তঃপরিচালনা করে তারা প্রশাসনিক বিষয়ের মানক অক্ষর ও JIS X 0221-ভিত্তিক আন্তঃপরিচালনা প্রয়োজনীয়তা অনুসরণ করুক।
- ফর্ম বা PDF স্ক্রিনের মতো একই অক্ষর কীভাবে দেখাবে?
- ভিত্তি রেখা স্ক্রিন ও ফর্মে একই ফন্ট নির্দিষ্ট করা, এবং PDF-এ ফন্ট এম্বেড করা। ফন্ট আলাদা হলে একই ডেটা গ্লিফ বদলাতে পারে; দেখার PC-তে ফন্ট না থাকলে বিকল্প ফন্ট দিয়ে আঁকা হয় আর দেখা ভাঙে। এম্বেডিং অনুমতি ফন্টের লাইসেন্স (OpenType fsType) স্থির করে, তাই নিশ্চিত করুন — রিপোর্ট লাইব্রেরির উপর ছেড়ে দেবেন না। সাবসেট এম্বেডিং, যা শুধু ব্যবহৃত অক্ষর এম্বেড করে, ফাইল আকারও কমায়। দীর্ঘমেয়াদি সংরক্ষণ প্রয়োজন হলে PDF/A বিবেচনা করুন, যা ফন্ট এম্বেডিং চায়।