আমি দেখতে পেলাম যে এই পদ্ধতির সাথে আমার সমস্যা হয়েছে, মূলত কারণ আমি কোনও ফাইলে আউটপুট লেখার চেষ্টা করছিলাম এবং এটি সঠিকভাবে এনকোড করা হয়নি। যেহেতু জেএস ইউসিএস -২ এনকোডিং ( উত্স , উত্স ) ব্যবহার করে বলে মনে হচ্ছে , তাই আমাদের এই সমাধানটি আরও একধাপ এগিয়ে প্রসারিত করতে হবে, আমার বর্ধিত সমাধানটি আমার পক্ষে কাজ করে।
জেনেরিক পাঠ্যে আমার কোনও অসুবিধা ছিল না, তবে যখন এটি আরব বা কোরিয়ান থেকে নেমেছিল তখন আউটপুট ফাইলে সমস্ত অক্ষর ছিল না তবে পরিবর্তে ত্রুটিযুক্ত অক্ষর দেখাচ্ছিল
ফাইল আউটপুট:
","10k unit":"",Follow:"Õ©íüY‹","Follow %{screen_name}":"%{screen_name}U“’Õ©íü",Tweet:"ĤüÈ","Tweet %{hashtag}":"%{hashtag} ’ĤüÈY‹","Tweet to %{name}":"%{name}U“xĤüÈY‹"},ko:{"%{followers_count} followers":"%{followers_count}…X \Ì","100K+":"100Ì tÁ","10k unit":"Ì è",Follow:"\°","Follow %{screen_name}":"%{screen_name} Ø \°X0",K:"œ",M:"1Ì",Tweet:"¸","Tweet %{hashtag}":"%{hashtag}
মূল:
","10k unit":"万",Follow:"フォローする","Follow %{screen_name}":"%{screen_name}さんをフォロー",Tweet:"ツイート","Tweet %{hashtag}":"%{hashtag} をツイートする","Tweet to %{name}":"%{name}さんへツイートする"},ko:{"%{followers_count} followers":"%{followers_count}명의 팔로워","100K+":"100만 이상","10k unit":"만 단위",Follow:"팔로우","Follow %{screen_name}":"%{screen_name} 님 팔로우하기",K:"천",M:"백만",Tweet:"트윗","Tweet %{hashtag}":"%{hashtag}
আমি ডেনিসের সমাধান থেকে এই তথ্যটি নিয়েছি এবং এই পোস্টটি খুঁজে পেয়েছি।
আমার কোডটি এখানে:
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
function ab2str(buf) {
var s = String.fromCharCode.apply(null, new Uint8Array(buf));
return decode_utf8(decode_utf8(s))
}
function str2ab(str) {
var s = encode_utf8(str)
var buf = new ArrayBuffer(s.length);
var bufView = new Uint8Array(buf);
for (var i=0, strLen=s.length; i<strLen; i++) {
bufView[i] = s.charCodeAt(i);
}
return bufView;
}
এটি আমাকে এনকোডিং সমস্যা ছাড়াই একটি ফাইলে সামগ্রী সংরক্ষণ করতে সহায়তা করে।
এটি কীভাবে কাজ করে: এটি মূলত একটি ইউটিএফ -8 চরিত্র রচনা করে একক 8-বাইট খণ্ড নেয় এবং এগুলিকে একক অক্ষর হিসাবে সংরক্ষণ করে (সুতরাং এইভাবে নির্মিত একটি ইউটিএফ -8 অক্ষর, এই অক্ষরগুলির 1-4 দ্বারা রচনা করা যেতে পারে)। UTF-8 দৈর্ঘ্যে 1 থেকে 4 বাইট থেকে পরিবর্তিত এমন ফর্ম্যাটে অক্ষরগুলিকে এনকোড করে। আমরা এখানে যা করি তা হ'ল একটি ইউআরআই উপাদানটিতে স্টিংকে এনকোড করা হয় এবং তারপরে এই উপাদানটি গ্রহণ করুন এবং এটি সম্পর্কিত 8 বাইট অক্ষরে অনুবাদ করুন। এইভাবে আমরা 1 টি বাইটের বেশি দীর্ঘ ইউটিএফ 8 অক্ষর দ্বারা প্রদত্ত তথ্য হারাতে পারি না।
Int8Array
ArrayBufferView
অক্ষর অনুলিপি করার জন্য কেবল বন্ধনী চিহ্নিতকরণ ব্যবহার করা সম্ভব হয়string[i] = buffer[i]
এবং বিপরীতে।