විවිධ වෙබ් පිටු වලින් (විවිධ වෙබ් අඩවි වලින්) ලබාගත් පෙළෙන් යුනිකෝඩ් අක්ෂර සමඟ කටයුතු කිරීමේදී මට ගැටළු තිබේ. මම භාවිතා කරන්නේ BeautifulSoup.
ගැටළුව වන්නේ දෝෂය සෑම විටම ප්රජනනය කළ නොහැකි වීමයි; එය සමහර විට සමහර පිටු සමඟ ක්රියා කරන අතර සමහර විට එය විසි කිරීමෙන් බාධා කරයි UnicodeEncodeError
. මට සිතිය හැකි සෑම දෙයක් ගැනම මම උත්සාහ කර ඇත්තෙමි, නමුත් යම් ආකාරයක යුනිකෝඩ් සම්බන්ධ දෝෂයක් නොතකා නිරන්තරයෙන් ක්රියාත්මක වන කිසිවක් මට හමු වී නැත.
ගැටළු ඇති කරන කේතයේ එක් කොටසක් පහත දැක්වේ:
agent_telno = agent.find('div', 'agent_contact_number')
agent_telno = '' if agent_telno is None else agent_telno.contents[0]
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
ඉහත ස්නිපටය ක්රියාත්මක වන විට සමහර නූල් මත නිපදවන තොග හෝඩුවාවක් මෙන්න:
Traceback (most recent call last):
File "foobar.py", line 792, in <module>
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
සමහර පිටු (හෝ වඩාත් නිශ්චිතවම, සමහර වෙබ් අඩවි වල පිටු) කේතනය කර ඇති අතර අනෙක් ඒවා කේතනය කර නොමැති නිසා විය හැකි යැයි මම සැක කරමි. සියලුම වෙබ් අඩවි එක්සත් රාජධානියේ පිහිටා ඇති අතර එක්සත් රාජධානියේ පරිභෝජනය සඳහා අවශ්ය දත්ත සපයයි - එබැවින් ඉංග්රීසිකරණය හැර වෙනත් කිසිම දෙයකින් ලියා ඇති පෙළ සමඟ අභ්යන්තරකරණය හෝ ගනුදෙනු කිරීම සම්බන්ධ ගැටළු නොමැත.
මට මෙම ගැටලුව නිරාකරණය කර ගැනීමට හැකි වන පරිදි මෙය විසඳන්නේ කෙසේද යන්න පිළිබඳව යමෙකුට අදහසක් තිබේද?
import os; import locale; os.environ["PYTHONIOENCODING"] = "utf-8"; myLocale=locale.setlocale(category=locale.LC_ALL, locale="en_GB.UTF-8"); ... print(myText.encode('utf-8', errors='ignore'))
.
$ export PYTHONIOENCODING=utf8