php – unserialize阿拉伯文字母呈现???作为输出
我有以下一点代码:
function appear($data) { $output = ''; $unsee = unserialize ( $data ); if (is_array ( $nsee )) { $output .= '<table>' . ""; foreach ( $nsee as $button ) { $output .= loadbutton ( $button); } $output .= ' <tr><td>IP</td> <td>' . $_SERVER ['REMOTE_ADDR'] . '</td></tr>' . ""; $output .= '</table>' . ""; } return $output; } function loadbutton($button) { $output = ''; $output .= '<tr>' . ""; $output .= '<td>'; $output .= $button ['values']; $output .= '</td><td>'; $output .= $_POST [strtolower ( $button ['values'])] ; $output .= '</td>' . ""; $output .= '</tr>' . ""; return $output; } 当我使用英文序列化数据的出现函数时,它完美地工作并输出正常. 但是,当我将它用于阿拉伯语的系列化数据时.一切正常,除了阿拉伯字母显示为“????”而不是真正的阿拉伯字母. 我已经验证了数据库中的数据,一切都是UTF-8,并且所有内容都是有效的数据库明智和保存顺序保存.但输出和反序列化是不正确的. 你知道解决这个问题的方法吗? 编辑: 我相信的问题在于调用$button [‘values’]. 我的$button数组是 想到没有解决方案.我知道它应该工作. 解: 问题出在我的序列化数据的mysql插入语句中.我插入拉丁语.一个简单的,愚蠢的错误. 谢谢您的帮助. 解决方法
确保您已在HTML文档中设置:
< meta http-equiv =“Content-Type”content =“text / html; charset = utf-8”/> 或者在输出任何内容之前将它放在PHP代码的顶部,使用HTTP标头进行设置: header(‘Content-Type:text / html; charset = utf-8’); 浏览器没有使用正确的字符集,因此显示?代替那些人物. 还使用: $output .= $_POST[mb_strtolower($button['values'],'UTF-8')]; 因为strtolower()不能正确地小写多字节字符. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |