我有一个带有latin1的数据库,我想用twig渲染为utf8。
问题在于twig的convert_encoding似乎丢掉了像ÅÄÖ这样的瑞典字符。
根据documentation,convert_encoding-filter使用iconv或mbstring,但这两个都正确地转换了我的字符串。
示例:
$loader = new Twig_Loader_Filesystem('view');
$twig = new Twig_Environment($loader);
echo $title . "<br>";
echo iconv('iso-8859-1', 'utf-8', $title) . "<br>";
echo mb_convert_encoding($title, 'utf-8', 'iso-8859-1') . "<br>";
echo call_user_func($twig->getFilter('convert_encoding')->getCallable(),$title,'iso-8859-1','utf8');
输出:
before ��� ��� after
before ÅÄÖ åäö after
before ÅÄÖ åäö after
before after
任何想法我做错了什么?
答案 0 :(得分:0)
该死。我混淆了参数的顺序。
应该是convert_encoding(to, from)
。不是相反。
这给出了正确的结果:
echo call_user_func($twig->getFilter('convert_encoding')->getCallable(),$title,'utf8','iso-8859-1');