我有以下代码:
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,一切都是有效的 db 明智和保存 serilaized 明智。但输出和反序列化不正确。
你知道解决这个问题的方法吗?反序列化是否支持阿拉伯字母?如果不是,那么为什么它正确保存阿拉伯字母但不获取它们?
编辑:
我认为问题在于调用 $button ['values']。
我的$button
数组是
array ( 'values' => 'Field Value')
没有想到任何解决方案。我知道它应该工作。
解决方案:
问题出在我的序列化数据的 mysql 插入语句中。我正在插入拉丁语。一个简单而愚蠢的错误。
感谢您的帮助。