PHP: mysql 5.7 and php 5.6 导入记事本编号查询不了和中文乱码问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | -- https://dev.mysql.com/doc/refman/8.0/en/charset-database.html show variables like "character_set_%" ; CREATE DATABASE `geovindu` CHARACTER SET utf8 COLLATE utf8_general_ci; -- mysql官方说明文档才知道原来MySQL8.0已经已经把默认字符集升级成ut8mb4了,和5.0有区别 ALTER DATABASE geovindu DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci ; SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'geovindu' ; USE geovindu; SELECT @@character_set_database, @@collation_database; |
用TXT文件编码UTF-8,导入UTF-8数据库,但当UTF-8网页,输入编号时,查询不到,数据库内有显示. 而TXT文件在简体中文win操作系统, 文件编码ASNI,简体中文直接导入(不转码),会成乱码,在简体中文WIN操作系统UTF-8查询正常.
折腾了两天.解决了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | //上传excel 记事文本 txt 文件编码utf-8 不用转码,但查询,从键盘输入查询不了,只能从数据库存储的编号复制查询可以,虽然看起来显示一样的编号,但就是查询不了 mb_detect_encoding // 记事本TXT 简体中文操作系统下,文件编码ANSI,需要转码,可以查询 function doGeovinDuUptxt(){ import( 'ORG.Net.UploadFile' ); $upload = new UploadFile(); // 实例化上传类 $upload ->maxSize = 3145728 ; // 设置附件上传大小 $upload ->allowExts = array ( 'txt' ); // 设置附件上传类型 txt 文本类型 $upload ->savePath = './uploads/xls/' ; // 设置附件上传目录 $upload ->saveRule = time(). '_' .mt_rand(100,999); //设置上传文件规则 if (! $upload ->upload()) { // 上传错误提示错误信息 $this ->error( $upload ->getErrorMsg()); $resp = array ( "stats" => "error" , "msg" => '上传失败!' ); echo json_encode( $resp ); exit ; } else { // 上传成功 $uploadList = $upload ->getUploadFileInfo(); //获取上传成功信息 require_once './data/PHPExcel2/Classes/PHPExcel.php' ; define( 'WWW_PATH' , str_replace ( '\\' , '/' , realpath (dirname( __FILE__ ). '/../' . '/../' . '/../' . '/../' ))); $filePath =WWW_PATH. '/uploads/xls/' . $uploadList [0][ 'savename' ]; //快递类型 9f_scanorder $db_scan =M( 'duscanorder' ); $fp_in = fopen ( $filePath , "r" ); while (! feof ( $fp_in )) { $line = fgets ( $fp_in ); $geovindu = explode ( '#' , $line ); //如果有分割 //$data['code']=trim($line); //iconv('utf-8','gb2312', $val) $data [ 'code' ]= iconv( 'GB2312' , 'UTF-8' , trim( $geovindu [0])); //trim($geovindu[0]);//TXT文件编码是UTF-8 直接用这个,数据库存储编号是一样,就是查询不了 $data [ 'cnname' ]=iconv( 'GB2312' , 'UTF-8' ,trim( $geovindu [1])); //trim($geovindu[1]);// iconv('utf-8','gb2312',trim($geovindu[1])); //中文 $data [ 'enname' ]=iconv( 'GB2312' , 'UTF-8' ,trim( $geovindu [2])); //trim($geovindu[2]);// $db_scan ->add( $data ); //添加至数据库 iconv('GB2312', 'UTF-8', $str); } } $this ->msg( '导入成功!' ,U( 'index' )); // showMsg('上传成功!'); } |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2011-05-02 Passing Multiple Fields With GridView HyperLink Column