字符编码

MySQL字符集问题

 ̄綄美尐妖づ 提交于 2020-02-29 05:42:22
初始化文件 首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则。这两个参数集可以在 数据库 实例、单个数据库、表、列等四个级别指定。对于使用者来说,一般推荐使用utf8编码来 存储 数据。而要解决乱码问题,不单单是MySQL数据的存储问题,还和 用户 的程序 文件 的编码方式、用户程序和MySQL数据库的连接方式都有关系。 在MySQL5.5版本下,在my.cnf (my.ini)中指定数据库端字符集为UTF8,其中init_connect参数的作用是给每个普通用户的连接自动设置字符集(但是要注意的是,这个命令对具有super权限的用户是不生效的)。 [client] # 修改客户端默认字符编码格式为utf8 default-character-set = utf8 [mysqld] # 修改服务器端默认字符编码格式为utf8 character-set-server = utf8 # 在每个普通用户连接上来的时候都会触发执行 init_connect = 'SET NAMES GBK' 在客户端中查看配置生效 mysql> show variables like '%char%'; +--------------------------+---------------

数据通信基础知识

前提是你 提交于 2020-02-29 03:03:43
数据通信基础知识 计算机的物理底层是电路,他存储信息的方式是电路的通断,一般将通路定为1,断路定为0所有信息所有信息都是通过二进制01来表示的,这也就是为什么会有各类编码,编码通过二进制来定义一个字符,例如a的ASCII码是97,97是在计算机中用二进制表示,关于计算机乱码的情况就是编码的解析不一样例如有下面的编码,当文字是以一种编码写的,而读取文字的软件用另一种编码的时候就会出现乱码的情况 ASCII 总共有 128 个,用一个字节的低 7 位表示,0~31 是控制字符如换行回车删除等;32~126 是打印字符,可以通过键盘输入并且能够显示出来。 UTF-16 UTF-16 具体定义了 Unicode 字符在计算机中存取方法。UTF-16 用两个字节来表示 Unicode 转化格式,这个是定长的表示方法,不论什么字符都可以用两个字节表示,两个字节是 16 个 bit,所以叫 UTF-16。UTF-16 表示字符非常方便,每两个字节表示一个字符,这个在字符串操作时就大大简化了操作,这也是 Java 以 UTF-16 作为内存的字符存储格式的一个很重要的原因。 UTF-8 UTF-16 统一采用两个字节表示一个字符,虽然在表示上非常简单方便,但是也有其缺点,有很大一部分字符用一个字节就可以表示的现在要两个字节表示,存储空间放大了一倍,在现在的网络带宽还非常有限的今天

vim相关字符集设置

本秂侑毒 提交于 2020-02-28 15:21:25
fileencoding:Vim中当前编辑的文件的字符编码方式,Vim保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。 fileencodings:Vim启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将fileencoding设置为最终探测到的字符编码方式。 encoding:Vim内部使用的字符编码方式,包括Vim的buffer(缓冲区)、菜单文本、消息文本等。 termencoding:如果在终端环境下使用Vim,需要设置termencoding和终端所使用的编码一致。 来源: CSDN 作者: 陈正跃 链接: https://blog.csdn.net/weixin_39366864/article/details/104552138

二进制数据和乱码

百般思念 提交于 2020-02-28 12:44:26
二进制数据和乱码 二进制是计算技术中广泛采用的种数制,是用0和1两个数码来表示的数据,例出小写字母a在Windows系统中的二进制数据就是01100001。每个二进制位就是0和1的两种状态,它的基数为2,进位规则是“逢二进一“ 借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本都是二进制系统。 由于计算机只能识别二进制数据,而人们很难看懂“1010”代表什么,因此,需要将二进制数据转换为人们能够方便识别的字符,这时就需要设置字符编码。通过字符编码找到相应的字符集进行“翻译” ,这个字符集可以看作一本字典。 Windows 系统最原始的字符编码就是ASCII,该编码对应ASCII字符集,它支持英文中常用的字母、数字和标点符号等与二进制数据之间的转换,同时还提供八进制、十进制和十六进制的对应编码,各种编码都可以相互转换。 下面使用Windows系统的计算器演示二进制数据和十进制数据间的转换。 首先找到Window系统中的计算器,计算器的标准形式如下图所示。 在计算器中选择“查看”——>“程序员”命令,会跳转到程序员使用的计算器,如下图所示。 在上图中,可以看到二进制、八进制、十进制、十六进制等选项,当前选中为二进制,只能使用按钮0或者按钮1,单击按钮,输人1100001选择十进制选项,如下图所示。 从上图中可以看出

python数据类型、字符编码、文件处理

隐身守侯 提交于 2020-02-28 05:59:18
数据类型主要用一下 一二三点来进行分析#一:基本使用 1 用途 2 定义方式 3 常用操作+内置的方法 #二:该类型总结 1 存一个值or存多个值 只能存一个值 可以存多个值,值都可以是什么类型 2 有序or无序 3 可变or不可变 !!!可变:值变,id不变。可变==不可hash !!!不可变:值变,id就变。不可变==可hash 一:整型和浮点型 #整型int   作用:年纪,等级,身份证号,qq号等整型数字相关   定义:     age=10 #本质age=int(10) #浮点型float   作用:薪资,身高,体重,体质参数等浮点数相关 salary=3000.3 #本质salary=float(3000.3)浮点型和整型:没有可变不可变直说,存一个值 #二进制,十进制,八进制,十六进制 二:字符串 #作用:名字,性别,国籍,地址等描述信息 #定义:在单引号\双引号\三引号内,由一串字符组成 name='egon' #优先掌握的操作: #1、按索引取值(正向取+反向取) :只能取 #2、切片(顾头不顾尾,步长) #3、长度len #4、成员运算in和not in #1、按索引取值(正向取+反向取) :只能取 # msg='he lo' # print(msg[0]) # print(msg[2]) # msg[2]='A' #2、切片(顾头不顾尾,步长) # msg=

python 14 文件处理

╄→尐↘猪︶ㄣ 提交于 2020-02-27 10:51:38
# python 文件处理 # /usr/sbin/py/python # -*-coding:utf8-*- inner = open("a/document.txt") # 这种方式打开的文件默认是读模式 eqInner = open("a/document.txt", "r") # 等同于上式 文件的打开模式 r:只读 w:只写 a:追加 print(eqInner.read()) eqInner.close() a = inner.read() print(a) inner.close() text = open("a/测试文件.txt", encoding="utf8") # 当文件名为汉语时需要指定编码 print(text.readline()) print(text.readline()) print("------------------>") innerText = text.read() print(innerText) # 同一个stream中文件内容读出去了,再读,就没有了 print(text.readable()) # 是否是可读的 r:true w:false text.close() winner = open("a/documentTest.txt", "w", encoding="utf8") # 写模式

Java编程的逻辑 (58) - 文本文件和字符流

╄→гoц情女王★ 提交于 2020-02-26 22:20:15
上节我们介绍了如何以字节流的方式处理文件,我们提到,对于文本文件,字节流没有编码的概念,不能按行处理,使用不太方便,更适合的是使用字符流,本节就来介绍字符流。 我们首先简要介绍下文本文件的基本概念、与二进制文件的区别、编码、以及字符流和字节流的区别,然后我们介绍Java中的主要字符流,它们有: Reader/Writer:字符流的基类,它们是抽象类。 InputStreamReader/OutputStreamWriter:适配器类,输入是InputStream,输出是OutputStream,将字节流转换为字符流。 FileReader/FileWriter:输入源和输出目标是文件的字符流。 CharArrayReader/CharArrayWriter: 输入源和输出目标是char数组的字符流。 StringReader/StringWriter:输入源和输出目标是String的字符流。 BufferedReader/BufferedWriter:装饰类,对输入输出流提供缓冲,以及按行读写功能。 PrintWriter:装饰类,可将基本类型和对象转换为其字符串形式输出的类。 除了这些类,Java中还有一个类Scanner,类似于一个Reader,但不是Reader的子类,可以读取基本类型的字符串形式,类似于PrintWriter的逆操作。 理解了字节流和字符流后

数据库连接字符编码问题

送分小仙女□ 提交于 2020-02-25 10:46:18
查看数据表字符编码命令 show create table table_name; show create table student; +---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Python字符编码

人盡茶涼 提交于 2020-02-25 04:32:45
在用python编程中,字符串有两种表示方法"string"和 u"string"。 为什么字符串要是用这两种表达方式。不是仅仅用前一种呢? 使用type()函数查看,它们各自是str对象和unicode对象。这两个对象有什么差别吗?还有经经常使用到的encode()和decode()又是干什么的呢?都说python脚本使用的是两字节编码,这又是指什么呢? 要回答上面几个问题,首先得弄清楚关于编码的几个概念: Character Set :字符集,是我们人能够识别的字符。 如ASCII规定了127个用一个字节能够表示的字符集。包含英文字母、数字、符号和一些控制字符。当然ASCII定义的字符集比較小。 python中的Character Set基本包含眼下世界上全部是用的字符。如中文、英文、日文字符等等。所以基本上全部的字符都可在Python 中进行处理。 Code Point :计算机是不能直接识别字符的(由于它仅仅能直接识别二进制码),所以为了能让计算机处理和存储字符,须要将字符映射成一个数值(由于数值能够用二进制表达,计算机从而就能够识别了),这个数值叫作字符的code point。字符与其code point是一对一映射,Unicode非常好的规定了这样的映射关系。 Encode :unicode尽管规定了每一个字符的Code Point

unicode, character, character set, encoding, utf-8

倾然丶 夕夏残阳落幕 提交于 2020-02-24 21:19:51
转: http://www.utf.com.cn/article/s1383 这些相关的东西并不复杂, 但非常容易混淆不清, 尤其是最近看了一些这方面的文章, 即使是被认为是权威的出处, 也经常出现冲突矛盾, 和用词不准确, 解释的概念不清楚的情况: 1. 字符集和编码方案混为一谈. http://www.utf.com.cn/article/s320 中说: UTF_8字符集 UTF-8是UNICODE的一种变长字符编码 后一句话对, 但前一句话, UTF-8是对Unicode字符集的可能的编码方案中的一种, 它本身不是字符集. 2. 字符集只是字义了一个虚拟的, 与电脑无关的一个字符的集合, 规定了在这些集合里面就有哪些字符, 每个字符被赋予一个编号, 编号不是编码, 编号是Unicode术语中的code point的概念, 这些字符就外在的人眼所能看到的形状而言不必是唯一的. 3. Unicode给每个字符赋予的唯一的code point, 只是一个数学概念上的数字, 不要与计算机里对数值的某种表示法联系起来, 还没到那一步, 那是由编码方案决定的. 这个概念上的数, 在Joel on software里的那篇文章" The Absolute Minimum Every Software Developer Absolutely, Positively Must Know