第一步排除excel读取的数据是不是乱码

EXCEL读取时经常会出现乱码,而我们常用的字符集是UTF-8 ,GB2312(GBK) ,这就需要对编码进行转换,但是又不能对纯数字和英文字符转换,否则会乱码,而只要有一个中文字符时,就必须转换编码。

个人总结了下EXCEL中经常出现的数字和英文字符,写了一个正则表达式来匹配它们,当匹配成功时,不对其做转换,反之转换成GBK或者UTF-8。

/*
* @param $value 从EXCEL中读取的单元格数据
* @param $toCharset 要转换成的编码,默认为UTF-8
* @return String 转换后的字符串
*/
function realChar($value,$toCharset="UTF-8"){
if(preg_match("/^[0-9a-zA-Z\s\.\-\(\),\+\*\/]*$/",$value)){
return $value;
}else{
return iconv("UTF-16LE",$toCharset,$value);
}
}

第二部排除mysql的设置字符集和自己的读取文本的字符集是否一致

mysql_query("set names 'utf8'");//设置编码输出 

PHP读取EXCEL时写入数据乱码解决办法的更多相关文章

  1. 爬虫爬数据时,post数据乱码解决办法

    最近在写一个爬虫,目标网站是:http://zx.bjmemc.com.cn/,可能是为了防止被爬取数据,它给自身数据加了密.用谷歌自带的抓包工具也不能捕获到数据.于是下了Fiddler.     F ...

  2. excel打开csv文件乱码解决办法

    参考链接: https://jingyan.baidu.com/article/4dc408484776fbc8d846f168.html 问题:用 Excel 打开 csv 文件,确认有乱码的问题. ...

  3. jsonp跨域请求360数据乱码解决办法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  4. 爬虫爬数据时,post数据乱码解决的方法

    近期在写一个爬虫,目标站点是:http://zx.bjmemc.com.cn/.可能是为了防止被爬取数据,它给自身数据加了密. 用谷歌自带的抓包工具也不能捕获到数据. 于是下了Fiddler.     ...

  5. Python模块学习之xlrd 读取Excel时传入formatting_info=True报错:NotImplementedError: formatting_info=True not yet implemented

    问题:xlrd读取Excel时传入 formatting_info=True 报错 之前我们使用读取xls文件的时候都是使用的xlrd库,但是这个库只能操作 .xls格式,对于后来的 .xlsx的版本 ...

  6. 无法读取Excel中的数据单元格。有数据,但是读出来全是空值

    C#读取Excel,取值为空的解决办法! C#读取Excel遇到无法读取的解决方法是什么呢?这样在C#读取Excel的过程中有很多问题,那么本文就向你介绍如何解决C#读取Excel遇到无法读取的解决方 ...

  7. C# 读取Excel中的数据

    #region 读取Excel中的数据 /// <summary> /// 读取Excel中的数据 /// </summary> /// <param name=&quo ...

  8. sql 读取excel中的数据

    select 列名 as 字段名 from openBowSet('MSDASQL.1','driver=Microsoft Excel Driver(*.xls);dbq=文件存放地址','sele ...

  9. C#读取Excel表格的数据

    1.创建工程后,需要下载 EPPlus.dll 添加到工程中,这里有一个下载地址:https://download.csdn.net/download/myunity/10784634 2.下面仅实现 ...

随机推荐

  1. 遍历ArrayList与LinkedList,使用FOR与迭代器的区别

    网上结论: 如果是链表结构的集合,如LinkedList,则使用迭代器遍历,速度会更快(顺序获取). 如果是数组结构的,如ArrayList,则使用for循环会更快(随机获取) 测试代码: packa ...

  2. hdu 1732 Push Box

    http://acm.hdu.edu.cn/showproblem.php?pid=1732 推箱子和游戏规则一样. #include <cstdio> #include <cstr ...

  3. Vim 默认开启行号、语法显示等设置

      在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号.语法高亮度显示.智能缩进等功能的.为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc. 在启动vim时,当前 ...

  4. HTTP常见的状态码

    状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误.RFC2616定义的状态码,由3位数字和原因短信组成.数字中的第一位 ...

  5. Spark机器学习笔记一

    Spark机器学习库现支持两种接口的API:RDD-based和DataFrame-based,Spark官方网站上说,RDD-based APIs在2.0后进入维护模式,主要的机器学习API是spa ...

  6. 【HDU1879】继续畅通工程(MST基础题)

    真心大水题...不多说. #include <iostream> #include <cstring> #include <cstdlib> #include &l ...

  7. JSP 中 JSTL 页面标签的笔记

    jsp头部引入使用的标签 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&g ...

  8. nyoj 36 最长公共子序列

    描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subseque ...

  9. java的Future使用方法

    首先,Future是一个接口,该接口用来返回异步的结果. package com.itbuluoge.mythread; import java.util.ArrayList; import java ...

  10. Codeforces 474C Captain Marmot 给定4个点和各自旋转中心 问旋转成正方形的次数

    题目链接:点击打开链接 题意: 给定T表示case数 以下4行是一个case 每行2个点,u v 每次u能够绕着v逆时针转90° 问最少操作多少次使得4个u构成一个正方形. 思路: 枚举判可行 #in ...