首页 > 数据库 >PHP: mysql 5.7 and php 5.6 导入记事本编号查询不了和中文乱码问题

PHP: mysql 5.7 and php 5.6 导入记事本编号查询不了和中文乱码问题

时间:2023-05-02 21:33:25浏览次数:38  
标签:trim UTF 5.6 查询 upload geovindu 乱码 php 上传

-- 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查询正常.

折腾了两天.解决了.

  //上传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('上传成功!');

    }

  

标签:trim,UTF,5.6,查询,upload,geovindu,乱码,php,上传
From: https://www.cnblogs.com/geovindu/p/17368298.html

相关文章

  • Java cmd下编译乱码问题解决办法
    1、报错样式 2、解决办法1)指定字符集,如下 2)修改编码格式通过“记事本”打开—》另存为3)修改环境变量此电脑——》属性——》高级系统设置——》环境变量——》(系统环境变量)新建——》“JAVA_TOOL_OPTIONS” “-Dfile.encoding=UTF-8”如下图:——》重启cmd,再......
  • PHP use 动态类
    本文主要和大家分享PHP新特性use加强使用,从同一namespace导入的类、函数和常量现在可以通过单个use语句一次性导入了。<?php//PHP7之前版本用法<?phpusesome\namespace\ClassA;usesome\namespace\ClassB;usesome\namespace\ClassCasC;usefunctionsome\name......
  • 【web 开发基础】PHP自定义回调函数之call_user_func_array()
    前言从上一篇文章中我们了解到,回调函数是将一个函数作为参数传递到调用的函数中。如果在函数的格式说明中出现callback类型的参数,则该函数就是回调函数。虽然可以使用变量函数去声明自己的回调函数,不过我们通常大多还是会通过借助 call_user_func_array() 函数去实现。通过借助......
  • MySQL Workbench和phpMyAdmin
    MySQLWorkbench是MySQL官方提供的一款开源的图形化管理工具,可以用于设计、开发、管理和维护MySQL数据库。MySQLWorkbench提供了一个集成开发环境(IDE),其中包含多个工具和功能,包括:1.数据建模工具:可以用于设计数据库模型、创建和编辑表、定义列、设置约束等。2.SQL编辑器:可以用......
  • Dockers下php容器中安装redis扩展
    首先进入php容器dockerexec-it容器ID或名称查看php安装位置  whichphp查看php已安装扩展  php-m1、下载redis扩展包   redis扩展下载地址【https://pecl.php.net/package/redis 】下载相应版本的扩展2、解压扩展包   tar-zxvfredis-5.1.1.tg......
  • PHP连接MYSQL的一些操作
    PHP5以及版本使用允许以下方式连接MYSQL:MYSQLiextensionPDO(PHPDataObjects)1.连接MYSQL//MYSQLi-面向对象<?php$servername="localhost";$username="username";$password="password";//创建连接$conn=newmysqli($sername,$username,$p......
  • PHP重要知识点
    PHP表单和用户输入PHP中的$_POST和$_GET变量用于检索表单中的信息,比如用户输入。实例:<html><head><metacharset="utf-8"><title>test</title></head><body><formaction="welcome.php"me......
  • csv用Excel打开出现乱码
    CSV用Excel打开出现乱码今天出现一个问题使用wps打开不会出现乱码。但使用excel打开的时候会出现乱码。其实在我们把文件流转成文件的时候需要在bolb对象前加上unicode标识,只需要下载的时候在数据流前面新增一个标识就行了。还有一点需要记住,res一定是blob对象,所以看......
  • PHP计算两个经纬度之间的据离
    直接上代码/***@param$lat1*@param$lng1*@param$lat2*@param$lng2*@returnint*/functiongetDistance($lat1,$lng1,$lat2,$lng2){//将角度转为狐度$radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为弧度$radLat2=deg2rad......
  • Java 读取UTF-8文件中文乱码
    Java读取UTF-8文件中文乱码 InputStreamReaderisr=newInputStreamReader(newFileInputStream(file),"UTF-8");BufferedReaderread=newBufferedReader(isr);  例如:privatestaticStringreadUTF8File(StringfilePath)throwsIOException{ InputStreamReaderi......