字符编码

PHP的学习--PHP加密

和自甴很熟 提交于 2020-02-24 04:15:32
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串。 raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949ba59abbe56e057f20f883e 2. Crype加密 string crypt ( string $str [, string $salt ] ) crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。 参数 str -- 待散列的字符串。 salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。 这是也一种不可逆加密,执行如下的代码 $password = '123456'; $salt = "test";// 只取前两个 echo crypt($password, $salt); 得到的结果是teMGKvBPcptKo 使用自动盐值的例子如下: $password = crypt(

Java中文乱码原因

∥☆過路亽.° 提交于 2020-02-23 15:17:20
Java中文乱码原因 Java在中文环境中乱码无处不在,而且出现的时间和位置也包涵广泛,具体的解决方法也是千奇百怪。 但是如果能理清其中的脉络,理解字符处 理的过程,对于解决问题很有指导意义,不至于解决了问题也不知道为什么。 其实,原因不外乎出在String输入时和输出时。 首先,Java中的任何String都是以UNICODE格式存在的。 很多人因为在GBK环境中使用String,会误以为String是GBK格式,实际上Java的String类中并没有存储CharSet信息的字段, 所有String中的字符只会以UNICODE的2字节形式存在。 String在构造时会逐一把字符按指定编码(默认值为系统编码GBK),转换为UNICODE字符,存入一个Char(无符号16位)数组中。 如: new String(bytes,"gbk"); 并不是说,生成一个GBK编码的字符串,而是按GBK逐一辨认字节数组bytes中的字符转化为UNICODE。 假设,bytes本是按GB编码的,构造方法在发现一个最高位为0的byte就作为ascii字符处理,最高位为1就和后面的一个byte合成中文字符, 再转换编码。 可以看出,在这个过程中,编码选择错误就会导致程序按错误方法辨认bytes,乱码就出现了。 在这里产生的乱码,很多时候还可以通过.getByte()方法修复,还没有后面的严重。 如:

Mysql中文问题解决方案

情到浓时终转凉″ 提交于 2020-02-23 05:25:41
阅读过不少关于mysql的编码设置和乱码问题的一些文章,经过再三的调试,终于通过,终于解决了一块心病,终于解了我心头之恨,哈哈哈。现在把它概括如下。 MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。我们最终的目标是使得这四个层次转化会支持中文的编码,下面以utf8为例。 1. 首先查看系统的字符集和排序方式。如果想查看某个特定的数据库的字符集和排序方式,应该先选定数据库,mysql>use databasename; mysql> SHOW VARIABLES LIKE ''character_set_%''; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | |

MySql 编码设置

蹲街弑〆低调 提交于 2020-02-23 05:22:31
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。 查看系统的字符集和排序方式的设定可以通过下面的 两条命令 或 mysql> status 。 mysql> SHOW VARIABLES LIKE 'character_set_%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | |

JSP中文乱码问题的解决

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-22 07:00:41
字符内码 每个国家(或区 域)都规定了计算机信息交换用的字符编码集,如美国的扩展ASCII码、中国的GB2312-80、日本的 JIS 等,作为该国家(区域)信息处理的基础,有着统一编码的重要作用。由于各本地字符集代码范围重叠,相互间信息交换困难,软件本地化版本独立维护成本较高。 因此有必要将本地化工作中的共性抽取出来,做一致性处理,将特殊的本地化处理内容降低到最少,这就是所谓的国际化(I18N)。各种语言信息被规范为本地 信息,而底层字符集采用包含了所有字符的Unicode。 字符内码(character code)指的是用来代表字符的内码。我们在输入和存储文档时都要使用内码,内码分为单字节内码和双字节内码。单字节内码的英文全称是Single- Byte Character Sets (SBCS),可以支持256个字符编码;双字节内码的英文全称是Double-Byte Character Sets(DBCS),可以支持65000个字符编码,主要用来对大字符集的东方文字进行编码。 CodePage 指的是一个经过挑选的以特定顺序排列的字符内码列表,对于早期的单字节内码的语种,CodePage中的内码顺序使得系统可以按照此列表来根据键盘的输入 值给出一个对应的内码。对于双字节内码,给出的是MultiByte到Unicode的对应表

python中的f''、b''、u''、r''

不羁的心 提交于 2020-02-20 04:22:26
f/format() 格式化操作,相当于format()函数 案例如下: name = 'wy' l = f'{name}' print(l) # 打印出的l是 wy b:bytes 二进制 拓展: encode和decode也可以在二进制和字符串之间转换 u/U 表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用utf8 r/R 非转义的原始字符串,原意输出 相对特殊的字符,其中可能包含转义字符,反斜杠加上对应字母,表示对应的特殊含义的, 比如最常见的”\n”表示换行,”\t”表示Tab等 以r开头的字符,常用于正则表达式,对应着re模块。 来源: https://www.cnblogs.com/python-Arvin/p/11749050.html

python字符串编码

浪尽此生 提交于 2020-02-18 07:03:15
python 默认编码   python 2.x 默认的字符编码是 ASCII ,默认的文件编码也是 ASCII 。   python 3.x 默认的字符编码是 unicode ,默认的文件编码是 utf-8 。 中文乱码 问题   无论以什么编码在内存里显示字符,存到硬盘上都是 二 进制,所以编码不对,程序就会出错。   常见编码有 ascii 编码(美国), GBK 编码(中国), shift_JIS 编码(日本 ), unicode (统一编码)等。   需 要注意的是,存到硬盘上时是以何种编码存的,再从硬盘上读出来时,就必须以何种编码读,要不然就 会出现乱码问题 。   常见的编码错误的原因有 如下,出现乱码时,按照编码之前的关系,挨个排错就能解决问题。      python 解释器的默认编码 ;      Terminal 使用的编码 ;      python 源文件文件编码 ;     操作系统的语言设置 。   Python 支持中文的编码: utf-8 、 gbk 和 gb2312 。 uft-8 为 国际通用 , 常用有数据库、编写代码 。 gbk 如 windows 的 cmd 使用 。 编码转换   如果想要中国的软件可以正常的在美国人的电脑上实现,有下面两种方法:    让美国人的电脑都装上 gbk 编码    让你的软件编码以 utf-8 编码   

python字符编码-文件操作

浪尽此生 提交于 2020-02-17 23:25:49
字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计算机里存储的数据都是0101这样的二进制数据 ''' 各种编码表/标准 的由来 """ 基于上述原因与情况 人们输入的都是我们自己能看懂的语言、字符, 而计算机里存储的却是二进制数据,这样计算机不能读懂了 所以在保存数据的时候有一个转换过程,要有一个对应关系将我们输入的字符转换成计算机能够存储的二进制数据 人输入的字符 >> 对应关系转换(字符编码表)>> 二进制数据 A 0100 0001 B 0100 0010 后来美国发明了ASCII码表,用八位二进制来表示一个英文字符 其实所有的英文字符 + 符合,最多也就在125位左右,用七位二进制就够了,采用八进制是给其他语言做了预留 """  补充: ''' 八位二进制也叫 8bit ---> 0000 0000 常见单位与转换: 8bit = 1Bytes 1024Bytes = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = 1TB 1024TB = 1PB ''' 各国各类编码的出现 """ 看到美国人有字符编码了,我们中国人也要用计算机,但ASCII码又没有中文的对应关系,于是乎就有国人发明了国标码

Python开发基础-Day5-字符编码、文件处理和函数基础(草稿)

Deadly 提交于 2020-02-17 18:23:15
字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件 用什么编码方式存储,就用什么编码打开   计算机在存取数据的时候,以什么格式存的就需要以什么格式来解码.例如:数据在内存中使用unicode编码来保存,当数据要刷入硬盘时,就需要把数据用utf-8的标准转换成Bytes(二进制),保存在硬盘上,读取的时候就需要用utf-8的标准转换成unicode,如果保存和读取使用的编码不同会导致乱码. python3默认以utf-8的方式存:   内存中的编码,在未执行行前所有的都是unicode类型,但是在执行时候,会根据python设置的编码类型进行编码,默认utf-8,编码会另外开辟内存空间 python2:默认以ASCII编码读取,一般读取时候需要手动指定,否则代码无法正常运行。Python2中的 str默认存的是Bytes。而不是像Python3一样默认存的是unicode. Python使用 encode和decode 两个参数命令来编码和解码. encode是unicode编码的过程,可以转成任何编码,如utf-8,gbk等 decode是解码的过程,用什么方式编码就用什么方式解码 python文件执行的时候在哪个终端执行就用哪个终端的字符编码进行输出打印 乱码:存的时候乱码,无解 读乱码

jsp中文乱码

一曲冷凌霜 提交于 2020-02-17 13:20:15
1,最基本的乱码问题。 这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。 <%@ page language="java" pageEncoding="UTF-8"%> <%@ page contentType="text/html;charset=iso8859-1"%> <html> <head> <title>中文问题</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> </head> <body> 我是个好人 </body> </html> 三个地方的编码。 第一个地方的编码格式为jsp文件的存储格式。Ecljpse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。 第 二处编码为解码格式。因为存为UTF-8的文件被解码为iso8859-1,这样如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有。缺省也是使用iso8859-1的编码格式。所以如果没有这一行的话,“我是个好人”也会出现乱码。必须一致才可以。 第三处编码为控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式没有关系。有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面,导致浏览器混淆了编码格式