gbk

PHP页面显示乱码?(编码统一问题)

二次信任 提交于 2020-04-07 05:30:19
MySQL数据库编码、html页面编码、PHP或html文件本身编码要全部一致。 1、MySQL数据库编码:建立数据库时指定编码(如gbk_chinese_ci),建立数据表、建立字段、插入数据时不要指定编码,会自动继承数据库的编码。 数据库连接时,也有编码,可以在连接完数据库后,执行 mysql_query ('SET NAMES gbk'); 2、html页面的编码,指的是这一行的设置: <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 3、PHP或html文件本身的编码:用editplus打开php文件或html文件,另存时,选择的编码,如果数据库和页面编码是gbk,则这儿的编码选择ansi;如果数据库和页面编码是utf-8,则这儿也选择utf-8。 4、另外要注意的是,Javascript或Flash中传递的数据是utf-8编码,如果数据库和页面编码是gbk,要进行转码,然后写入数据库。 将"你好"从GBK转换到UTF-8格式 iconv ("gbk","utf-8","你好"); 5、在PHP程序中,可以加上一行,来指定PHP源程序的编码: header ('Content-type: text/html; charset=gbk'); 来源: oschina 链接: https:/

Python学习笔记:字符编码原理和操作详解

徘徊边缘 提交于 2020-04-06 12:16:37
一、电脑字符集的历史   1、电脑是如何将二进制与字符对应起来的?     我们知道,电脑底层只认识0和1的二进制数据,为了让电脑可以跟人类互动, 我们使用8个二进制位(即1个字节)来对应一个更复杂的数字,     比如:使用二进制“01000001”来指代十进制“65”,也就是大写字母A     实际使用场景中,人类利用键盘打字符“A”时,实际上是打65这个数字,电脑再到表中寻找65所代表的二进制数据“01000001”,实际处理的是这个二进制数据,这样就对应起来了,     这种对应关系表就是最早的字符编码集ASCII码表,如下图:        2、字符集是如何发展成一个庞大家族的?     电脑最初是西方人发明的,欧美国家的字符比较少,他们仅占用了前面127个位置就已经够用了,而8位的二进制数据最多可以表示255个不同的字符,剩下的128个字符就留给了别的国家,那么别国肯定是不够用的,怎么办?     于是聪明的中国人在ASCII码中规定几个位置,默认当电脑要寻找这几个位置的字符时就映射到另外一张表格中,而这张表格中存储了完整的中文字符,中文字符的发展历史如下:     a、GB2312:支持7000个汉字     b、GBK1.0:支持20000+个中文字符     c、GB18030:支持27000+个中文字符     d、Unicode

PHP 文件导出(Excel, CSV,txt)

淺唱寂寞╮ 提交于 2020-04-06 11:12:23
1,Excel 导出: /* * * Excel导出例子 */ public function excel($res){ $objPHPExcel = new PHPExcel(); $objPHPExcel ->getProperties()->setCreator( " XXX " ); $objPHPExcel ->setActiveSheetIndex( 0 ); $objActSheet = $objPHPExcel-> getActiveSheet(); $objActSheet ->setCellValue( ' A1 ' , ' 门店名称 ' ); $objActSheet ->setCellValue( ' B1 ' , ' 门店UID ' ); $objActSheet ->setCellValue( ' C1 ' , ' 交易时间 ' ); $objActSheet ->setCellValue( ' D1 ' , ' 应收金额 ' ); $objActSheet ->setCellValue( ' E1 ' , ' 实收金额 ' ); $objActSheet ->setCellValue( ' F1 ' , ' 支付笔数 ' ); $objActSheet ->setCellValue( ' G1 ' , ' 取消笔数 ' ); $objActSheet

Python --字符编码总结

元气小坏坏 提交于 2020-04-05 18:42:26
一、了解字符编码的知识储备   1. 文本编辑器存取文件的原理(nodepad++,pycharm,word)      打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后数据丢失,因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到了硬盘上。在这一点上,我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。     即:在没有点击保存时,我们所写的内容都是写入内存。注意这一点,很重要!!当我们点击保存,内容才被刷到硬盘。     上面做了两件事:写内容到内存,从内存将内存刷到硬盘。这是两个过程。 2. python解释器执行py文件的原理 ,例如python test.py     第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器     第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中     第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码     python解释器执行py文件分为两个步骤:1.将文件读到内存,2.解释执行内容。 二、字符编码简介   要搞清楚字符编码,首先要解决的问题是: 什么是字符编码 ?   我们都知道,计算机要想工作必须通电,也就是说‘电’驱使计算机干活

Linux下文件名编码转换

烈酒焚心 提交于 2020-04-04 06:36:51
因为现在用linux,原来在windows里的文件都是用GBK编码的。所以copy到linux下是乱码,例如从Windows向Linux上传字体时,遇到下面的乱码: 找到个可以转换文件名编码的命令,就是convmv。 convmv命令详细参数 例如: convmv -f GBK -t UTF-8 *.mp3 不过这个命令不会直正的转换,你可以看到转换前后的对比。如果要直正的转换要加上参数 --notest convmv -f GBK -t UTF-8 --notest *.mp3 -f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 -r 这个表示递归转换当前目录下的所有子目录。 convmv -f GBK -t UTF-8 -r --nosmart --notest <目标目录> -f from -t to --nosmart 如果已经是utf-8 忽略 -r 包含所有子目录 --notest 不加表示只列出有什么需要转换的,不做实际转换 来源: https://www.cnblogs.com/c2013/p/10277565.html

Linux文件名编码转换

独自空忆成欢 提交于 2020-04-04 06:36:19
从Linux往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名 中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。 在Linux中专门提供了一种工具进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。 服务器是centos,安装 convmv:yum -y install convmv。 下面看一下convmv的具体用法: convmv -f 源编码 -t 新编码 [选项] 文件名 常用参数: -r 递归处理子文件夹 -r 递归处理子文件夹 --notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。 --list 显示所有支持的编码 --unescap 可以做一下转义,比如把%20变成空格 比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下: convmv -f UTF-8 -t GBK --notest utf8编码的文件名 这样转换以后”utf8编码的文件名”会被转换成GBK编码(只是文件名编码的转换,文件内容不会发生变化) 下面的例子,将当前文件夹下的所有文件

JavaSE学习总结第21天_IO流3

泄露秘密 提交于 2020-04-02 20:26:10
21.01 转换流出现的原因及格式 由于字节流操作中文不是特别方便,所以,java就提供了转换流。 字符流 = 字节流 + 编码表 21.02 编码表概述和常见编码表 编码表:计算机只能识别二进制数据,早期又来是电信号,为了方便应用计算机,让它可以识别各个国家的文字,就将各个国家的文字用数字来表示,并一一对应,形成一张表,就是编码表。 简单的说编码表就是由字符及其对应的数值组成的一张表。 常见的编码表: ASCII:美国标准信息交换码,用1个字节的7位可以表示 ISO8859-1:拉丁码表,欧洲码表,用1个字节的8位表示 GBK2312:中国的中文编码表 GBK:中国的中文编码表升级,融合了更多的中文文字符号 GB18030:GBK的取代版本 BIG-5码 :通行于台湾、香港地区的一个繁体字编码方案,俗称“大五码” Unicode:国际标准码,融合了多种文字,所有的文字都用2个字节表示,Java中使用的就是Unicode码表 UTF-8:最多用3个字节来表示一个字符(能用一个字节表示的就用一个字节,一个表示不了就用两个,最多用三个字节) 21.03 String类中的编码和解码问题 1.public String(byte[] bytes, String charsetName)throws UnsupportedEncodingException 通过使用指定的 charset

PHP 正则判断中文 UTF-8 & GBK

半城伤御伤魂 提交于 2020-03-30 09:45:21
UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的。比如: var str = "php编程"; if (/^[/u4e00-/u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); } else{ alert("该字符串不全部是中文"); } php中,是用/x表示十六进制数据的。于是,变换成如下的代码: $str = "php编程"; if (preg_match("/^[/x4e00-/x9fa5]+$/",$str)) { print("该字符串全部是中文"); } else { print("该字符串不全部是中文"); } 貌似不报错了,判断的结果也正确,不过把$str换成“编程”两字,结果却还是显示“该字符串不全部是中文”,看来这样的判断还是不够准确。重要:查阅了<精通正则表达式>发现,对于[/x4e00-/x9fa5]这块东西,自己做一个强化的解释 php的正则中, [/x4e00-/x9fa5],其实就是 字符和字符组的概念, /x{hex},表达一个16进制数, 需要注意的是hex 可以是1-2位的,也可以是4位的,但是如果是4位的必须加上大括号, 同时,如果是大于x{FF}的hex,必须和u 修饰符连用,不然会非法出错 网上只能找到匹配全角字符的正则: ^[/x80-/xff]*^/ ,这里可以不加大括号 [

python3 unicod,utf-8,gbk的编码和解码中文显示问题

微笑、不失礼 提交于 2020-03-25 21:29:05
python3的字符编码让人头疼。 这个也不是一篇介绍gbk, utf-8, unicode怎么表示英文,中文字符的基础知识总结。 网上有很多类似的文章,目前也不需要升入学习到了解各个bit位表示什么含义。 目的: 清楚了解为什么在python3不同的编码,解码,windows,linux操作系统下,字符是否能够正确显示。 前提: 了解不同编码用不同的二级制编码和长度来表示字符。 在python3中,各种字符编码之间的互相转换都要通过unicode作为中间编码转换。gbk转换成unicode,再从unicode转换成utf-8。 分析: 要区分4种编码解码概念, 1.编写代码文件时的编码。 notepad++ 在菜单“编码”中有选择,在状态栏可以看到编码类型。 pycharm 在菜单"file","editor","file encoding"中可以设置默认编码。在状态栏可以看到编码类型。 2.python3代码中申明的解码格式。 在代码中#coding=gbk。 编码声明告诉了python编译器以什么格式的编码来解码.py文件,它不会改变系统默认编码和本地默认编码, 也不是用于声明当前代码文件的编码格式的,而是声明当前代码文件的解码方式。换句话说, 代码文件的编码格式取决于你使用的编辑器,而如何解码该文件取决于文件头处的编码声明。 一般地,编码格式应当与解码格式一致

python编码和小数据池

我的梦境 提交于 2020-03-24 17:37:48
python_day_6 一. 回顾上周所有内容 一. python基础 Python是一门解释型. 弱类型语言 print("内容", "内容", end="\n") 打印语句 变量: 程序运行过程中产生的中间值. 存储在内存中.供后面的程序调用 变量的数据类型:     int, 整数 str, 字符串 bool, True,False   5. 命名规则: 由数字,字母,下划线组成 不能是纯数字或者数字开头 不能是关键字 不能太长 要有意义 不要用中文 区分大小写 推荐使用驼峰和下划线命名 input() 用户输入 if 判断 if 条件: 代码块 else: 代码块 if 条件: 代码块 elif 条件2: 代码块 .. else: 二. while循环 while 条件: 循环体 else: 代码块 流程: 判断条件是否为真. 如果真.执行循环体. 再次判断条件是否真. ....直到条件为假. 执行else. 退出循环 break 直接打断循环. continue 停止当前本次循环. 继续执行下一次循环 格式化输出: %s 字符串 %d 数字 运算符: 逻辑运算 1. and. 两端同时为真. 结果才是真. 2. or 或者. 两端有一个是真. 结果就是真 3. not 取反. () => not => and => or x or y 如果x非零, x, 否则 y 编码