易截截图软件、单文件、免安装、纯绿色、仅160KB

php 解析 excel 存储到 mysql 乱码


编码是个很基础的问题,也是大家很容易忽略的问题,写代码之前多多考虑,以后会少很多麻烦。
PHP发展了不少,现在pear用起来很方便,其中就有相关的class来读取Excel文件里面的内容,如果不想使用pear的话,可以考虑使用excel_class.php,google一下,可以找到这个class的source code下载,也能找到基本的example code,用起来很方便。
需要注意的是,从Excel里面读取出来的属于UTF-16LE编码,如果在移动应用中使用excel_class,则需要注意,因为通常手机都是支持UTF-8编码,其中就涉及到编码的转换。
例如我使用
echo $return[Sheet2][0][0];
来显示第1行第1列里面的内容,原本内容是“开始”,使用PHP在web上显示的时候也确实是“开始”,但是查看网页的源代码是
&#24320&#22987
其中&#是为了在网页上显示,24320和22987的十六进制表示则是“开始”的UTF-16LE编码。
那么我们需要做的就是将这个UTF-16LE编码转换为UTF-8编码。
首先打开excel_class.php,找到函数uc2html, 将函数中的代码注释掉,直接将参数返回, 即改函数不做任何操作。
function uc2html($str) {
  return $str;
}
接下来使用PHP中提供的函数mb_convert_encoding来将UTF-16LE转换成UTF-8。
echo mb_convert_encoding($return[Sheet2][0][0], 'UTF-8', 'UTF-16LE');
到此,即完成了UTF-16LE到UTF-8的转换。
需要注意的是,从Excel里面读取出来的属于UTF-16LE编码,如果在移动应用中使用excel_class,则需要注意,因为通常手机都是支持UTF-8编码,其中就涉及到编码的转换。
例如我使用
echo $return[Sheet2][0][0];
来显示第1行第1列里面的内容,原本内容是“开始”,使用PHP在web上显示的时候也确实是“开始”,但是查看网页的源代码是
开始
其中&#是为了在网页上显示,24320和22987的十六进制表示则是“开始”的UTF-16LE编码。
那么我们需要做的就是将这个UTF-16LE编码转换为UTF-8编码。
首先打开excel_class.php,找到函数uc2html, 将函数中的代码注释掉,直接将参数返回, 即改函数不做任何操作。
function uc2html($str) {
return $str;
}
Unicode是"UTF-16LE",我可以通过:
mb_convert_encoding($str, "UTF-16LE", "UTF-8")
或者
iconv("UTF-8", "UTF-16LE", $str)
将UTF-8转换为Unicode。
 


相关文档:

mysql 恢复被删的 root 账户

.关闭现有mysql
.不加载grant_tables而进入mysql
D:\>mysqld-nt --skip-grant-tables OR mysqld_safe --skip-grant-tables
.新开一个cmd窗口,然后按下面执行
D:\>mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.27-community-nt ......

mysql source 导入导出数据为乱码

一、导入数据
1、确定
数据库默认编码,比如编码
为gbk,将读入途径编码同样设为gbk,命令为:
           set names gbk;
2、source
d:/20080613.sql 导入数据。验证
数据库
中的数据是否存在乱码。
3、如果仍然存在乱码问题,这时候就要考虑改变导入文件的编 ......

也谈MySQL中实现ROWNUM

来源  http://e-xia.com/2009/06/rownum-in-mysql/
在工作中碰到这样的问题,在生成报表时第一列要输出top 1, top 2, ... , top 10。而mysql并不自带这样的功能。假设我们有这样的一个表:
mysql> create table tbl (
-> id int primary key,
-> col int
-> );
Query OK, 0 ......

[php]how to confirm deleting without using form.

<html>
<head>
<script type="text/javascript">
<!--
function confirmDelete()
{
    return confirm("Are you sure you wish to delete this entry?");
}   
//-->
</script>
</head>
<body>
<% $var1 = 2;%> ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号