我用一个xls类读取xls文件时,在网页显示出来的是正常的汉字,但写进数据库时是米萨市这样的编码?我要怎么转成汉字写进数据库?
解决方案 »
- PHP中保存大量数据到MSSQL中怎么实现
- 终于脱离苦海,准备去弄个小公司大家帮我想个公司名称吧,公司域名是www.e08.com.cn
- 请问smarty有没有类似htmlspecialchars的函数?
- PHP书籍竟然从书店撤柜了!?
- 有关fsockopen()用法及html特殊字符转换的问题
- 请问,查询大量数据放在表格中显示出来时怎么减少显示时间?谢谢!
- w32api_register_function()不能用!帮忙啊。
- 如何自动分页打印数据库的记录,高分拜求!
- 各位大侠,请教一个问题就是php可不可以通过socket来接收vc++发送过来的通过socket传输的图片?
- 启动apache时,为什么提示“通常每个套接字(协议/地址/端口)地址只能使用一次。make_sock could not bind to address0.0.0.0:80 no lis
- 文件内容排序(十万火急)
- 急!!局域网的其他电脑不能访问服务器的Apache
回复于 2004-12-07 09:16:40 得分 70<?php
/** 等价于js的unescape函数 **/
function unescape($str)
{/** 回调函数 **/
function unescape_callback($r)
{
if ($r[1] || $r[2])
return iconv("UCS-2","GB2312", pack("H4",$r[1] . $r[2]));
if ($r[3])
return iconv("UCS-2","GB2312", pack("n", $r[3]));
return $r[0];
}
$str = rawurldecode($str);
return preg_replace_callback("/%u(.{4})|&#x(.{4});|&#(\d+);|.+/", 'unescape_callback', $str);
}
echo unescape("最大挑战");
?>
{
//0x0000 -0x007f,ascii区
//0xxxxxxx x为unicode二进制
if($s <0x007f)
$str = chr(bindec(sprintf("%08b",$s)));
//0x0800 - 0xffff,中文区
//1110xxxx 10xxxxxx 10xxxxxx x为unicode二进制
elseif($s > 0x0800 && $s < 0xffff)
{
$c = sprintf("%018b",$s);
$c3 = str_split($c,6);
foreach($c3 as $k => $v)
{
$c3[$k] = "00".$v;
} return chr(0xe0 | bindec($c3[0]))
.chr(0x80 | bindec($c3[1]))
.chr(0x80 | bindec($c3[2]));
}
//其余的unicode编码区,请对照网上的unicode - utf8转换格式,写全代码。
}
$unicodeString = '米萨市';
$s = preg_replace("/&#(\d+)/e","foo('\\1')",$unicodeString);
echo $s;