බොහෝ විට මතභේදාත්මක ප්රශ්නයක් වන්නේ කුමක්දැයි මම විමසීමට යන්නෙමි: "වඩාත් ජනප්රිය කේතන ක්රමයක් වන යූටීඑෆ් -16 හානිකර යැයි සැලකිය යුතුද?"
මා මෙම ප්රශ්නය අසන්නේ ඇයි?
UTF-16 ඇත්ත වශයෙන්ම විචල්ය දිග කේතීකරණයක් බව ක්රමලේඛකයින් කීදෙනෙක් දැනුවත්ද? මෙයින් මා අදහස් කරන්නේ අන්යාගමික යුගල ලෙස නිරූපණය වන කේත ලක්ෂ්යයන් එකකට වඩා වැඩි ගණනක් ගන්නා බවයි.
මම දන්නවා; බොහෝ යෙදුම්, රාමු සහ ඒපීඅයි යූටීඑෆ් -16 භාවිතා කරයි, එනම් ජාවා ස්ට්රිං, සී # ස්ට්රිං, වින් 32 ඒපීඅයි, Qt GUI පුස්තකාල, ICU යුනිකෝඩ් පුස්තකාලය යනාදිය. කෙසේ වෙතත්, මේ සියල්ල සමඟම, සැකසීමේදී මූලික දෝෂ රාශියක් ඇත. BMP වලින් පිටත අක්ෂර (UTF-16 මූලද්රව්ය දෙකක් භාවිතා කර කේතනය කළ යුතු අක්ෂර).
උදාහරණයක් ලෙස, මෙම අක්ෂර වලින් එකක් සංස්කරණය කිරීමට උත්සාහ කරන්න:
- U ( U + 1D11E ) MUSICAL SYMBOL G CLEF
- U ( U + 1D565 ) ගණිතමය ඩබල්-ස්ට්රක් කුඩා ටී
- U ( U + 1D7F6 ) ගණිතමය මොනොස්පේස් ඩිජිටල් ශුන්යය
- 𠂊 ( U + 2008A ) හැන් චරිතය
ඔබ ස්ථාපනය කර ඇති අකුරු මත පදනම්ව ඔබට සමහරක් මග හැරෙනු ඇත. මෙම අක්ෂර සියල්ලම BMP (මූලික බහුභාෂා ගුවන්යානය) වලින් පිටත ය. ඔබට මෙම අක්ෂර දැකිය නොහැකි නම්, ඔබට යුනිකෝඩ් අක්ෂර යොමුව තුළ ඒවා බැලීමට උත්සාහ කළ හැකිය .
උදාහරණයක් ලෙස, වින්ඩෝස් හි මෙම අක්ෂර ඇතුළත් ගොනු නාම සෑදීමට උත්සාහ කරන්න; UTF-16 භාවිතා කරන විවිධ යෙදුම්වල මෙම චරිත හැසිරෙන ආකාරය බැලීමට "බැක්ස්පේස්" සමඟ මෙම අක්ෂර මකා දැමීමට උත්සාහ කරන්න. මම පරීක්ෂණ කිහිපයක් කළ අතර ප්රති results ල තරමක් නරක ය:
- ඔපෙරා ඒවා සංස්කරණය කිරීමේදී ගැටළුවක් ඇත (අවශ්ය වන්නේ මුද්රණ 2 ක් බැක්ස්පේස් හි මකන්න)
- නොට්පෑඩ් සමඟ ඒවා නිවැරදිව ගනුදෙනු කළ නොහැක (බැක්ස්පේස් හි අවශ්ය මුද්රණ 2 මකන්න)
- ගොනු නාම සංස්කරණ කවුළු සංවාද වල කැඩී බිඳී ඇත (බැක්ස්පේස් හි අවශ්ය මුද්රණ 2 මකන්න)
- සියලුම QT3 යෙදුම් සමඟ ඒවා සමඟ ගනුදෙනු කළ නොහැක - එක් සංකේතයක් වෙනුවට හිස් කොටු දෙකක් පෙන්වන්න .
u'X'!=unicode('X','utf-16')
BMP වලින් පිටත X අක්ෂර ඇති විට සමහර වේදිකාවල කෙලින්ම භාවිතා කරන විට පයිතන් එවැනි අක්ෂර වැරදි ලෙස සංකේතවත් කරයි.- පයිතන් යූටීඑෆ් -16 යුනිකෝඩ් නූල් සමඟ සම්පාදනය කරන විට පයිතන් 2.5 යුනිකෝඩෙටාටා එවැනි අක්ෂරවල ගුණාංග ලබා ගැනීමට අසමත් වේ.
- ස්ටැක් ඕවර්ෆ්ලෝ යුනිකෝඩ් අක්ෂර ලෙස කෙලින්ම සංස්කරණය කළ හොත් මෙම අක්ෂර පෙළෙන් ඉවත් කරන බව පෙනේ (මෙම අක්ෂර HTML යුනිකෝඩ් ගැලවී යාමෙන් පෙන්වනු ලැබේ).
- WinForms TextBox මැක්ස්ලෙන්ග් සමඟ සීමා වූ විට අවලංගු නූල් ජනනය කළ හැකිය .
UTF-16 භාවිතා කරන බොහෝ යෙදුම්වල එවැනි දෝෂ සොයා ගැනීම අතිශයින්ම පහසු බව පෙනේ.
ඉතින් ... යූටීඑෆ් -16 හානිකර යැයි සැලකිය යුතු යැයි ඔබ සිතනවාද?