(Zhífú) может отображаться только в iso-8859-1.Если я попытаюсь отобразить его в utf8, он станет Zh�f�.
Это полностью неверно.Вы можете отобразить «Zhífú» в терминалах / приложениях iso-8859-1 и UTF-8 / где угодно.Фактически, тот факт, что вы видите «Жифу», является доказательством того, что он может отображаться в UTF-8, поскольку это веб-страница UTF-8.Если вы получаете «Zh�f�», это потому, что вы не кодировали строку с использованием UTF-8, прежде чем передать ее терминалу / приложению / всему, что хочет UTF-8.
В любом случае, вклк вопросу.Я предполагаю, что вы храните текст, а не HTML.
Расшифруйте каждый ввод!Кодировать каждый вывод!Тогда нет проблем.
From the web
5a 68 c3 ad 66 c3 ba
|
decode Done for you by ->decoded_content (LWP::UA)
| or by ->content (WWW::Mech)
v
Decoded text Manipulate as desired
Zhífú
|
encode Done for you by DBI
|
v
Database
5a 68 c3 83 c2 ad 66 c3 83 c2 ba
На самом деле, декодирование должно быть уже сделано для вас ->decoded_content
, а кодирование должно быть сделано для вас DBI, поэтому я не понимаю, почему вы 'возникают проблемы с этим.
То же самое, когда вы читаете из базы данных и выводите на экран / что угодно.
5a 68 c3 83 c2 ad 66 c3 83 c2 ba
Database
|
decode Done for you by DBI if you use
| the ..._utf8 flag for your driver
v
Decoded text Manipulate as desired
Zhífú
|
encode use open ':std', ':locale';
|
v
Screen
5a 68 c3 83 c2 ad 66 c3 83 c2 ba