আমি বিভিন্ন আরএসএস ফিড থেকে প্রচুর পাঠ্য পড়ছি এবং সেগুলি আমার ডাটাবেসে intoুকিয়ে দিচ্ছি।
অবশ্যই, ফিডে বেশ কয়েকটি পৃথক অক্ষর এনকোডিং রয়েছে, যেমন ইউটিএফ -8 এবং আইএসও 8859-1।
দুর্ভাগ্যক্রমে, পাঠ্যগুলির এনকোডিংগুলির সাথে কখনও কখনও সমস্যা রয়েছে। উদাহরণ:
"ফুবুল" এর "ß" আমার ডেটাবেজে এটির মতো দেখা উচিত: "Ÿ"। এটি যদি "Ÿ" হয় তবে এটি সঠিকভাবে প্রদর্শিত হয়।
কখনও কখনও, "ফুবুল" এর "ß" আমার ডাটাবেসে এইরকম দেখায়: "ß"। তারপরে অবশ্যই এটি ভুলভাবে প্রদর্শিত হয়।
অন্যান্য ক্ষেত্রে, "ß" "ß" হিসাবে সংরক্ষণ করা হয় - সুতরাং কোনও পরিবর্তন ছাড়াই। তারপরে এটিও ভুলভাবে প্রদর্শিত হয়।
2 এবং 3 কেস এড়াতে আমি কী করতে পারি?
আমি কীভাবে সমস্ত জিনিসকে একই এনকোডিং করব, পছন্দমতো ইউটিএফ -8? আমি কখন ব্যবহার করব utf8_encode()
, কখন অবশ্যই ব্যবহার করবutf8_decode()
(এফেক্টটি কী তা স্পষ্ট তবে কখন আমাকে ফাংশনগুলি ব্যবহার করা উচিত?) এবং কখন ইনপুট দিয়ে আমার কিছু করা উচিত নয়?
আমি কীভাবে সবকিছুকে একই এনকোডিং করব? সম্ভবত ফাংশন দিয়ে mb_detect_encoding()
? আমি কি এর জন্য একটি ফাংশন লিখতে পারি? সুতরাং আমার সমস্যাগুলি হ'ল:
- পাঠ্যটি কী কী এনকডিং ব্যবহার করে তা আমি কীভাবে খুঁজে বের করব?
- আমি কীভাবে এটি ইউটিএফ -8 এ রূপান্তর করব - পুরাতন এনকোডিং যাই হোক না কেন?
এই কাজের মতো কোনও কাজ করবে?
function correct_encoding($text) {
$current_encoding = mb_detect_encoding($text, 'auto');
$text = iconv($current_encoding, 'UTF-8', $text);
return $text;
}
আমি এটি পরীক্ষা করেছি, কিন্তু এটি কাজ করে না। এতে দোষ কী?