utf8

utf8字符集下的比较规则

萝らか妹 提交于 2020-04-03 18:39:59
前言: 在MySQL中,比较常用的字符集是utf8和utf8mb4。这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果大家有使用4字节编码一个字符的情况,比如存储一些emoji表情啥的,需要使用utf8mb4。其实每个字符集下对应着若干个比较规则(也可以翻译为排序规则或校对规则,英文是COLLATE),同一字符集下,使用不同的比较规则会影响字符字段的比较和排序。本文以utf8为例,介绍下常用的几个比较规则的不同。 1.utf8下比较规则概览 我们先查看下utf8字符集下支持的所有比较规则: mysql> SHOW COLLATION LIKE 'utf8\_%'; +--------------------------+---------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------------+---------+-----+---------+----------+---------+ | utf8_general_ci | utf8 | 33 | Yes | Yes | 1 | | utf8_bin |

Unicode字符集和多字节字符集

拜拜、爱过 提交于 2020-04-01 04:23:52
在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主要在原来的7 bits字符集的基础上加入了一些特殊符号例如制表符。 后来,由于各国语言的加入,ASCII已经不能满足信息交流的需要,因此,为了能够表示其它国家的文字,各国在ASCII的基础上制定了自己的字符集,这些从ANSI标准派生的字符集被习惯的统称为ANSI字符集,它们正式的名称应该是MBCS(Multi-Byte Chactacter System,即多字节字符系统)。这些派生字符集的特点是以ASCII 127 bits为基础,兼容ASCII 127,他们使用大于128的编码作为一个Leading Byte,紧跟在Leading Byte后的第二(甚至第三)个字符与Leading Byte一起作为实际的编码。这样的字符集有很多,我们常见的GB-2312就是其中之一。 例如在GB-2312字符集中,“连通”的编码为C1 AC CD A8,其中C1和CD就是Leading Byte

转 sqlplus执行sql报错:ORA-01756:

耗尽温柔 提交于 2020-03-31 06:21:54
1.sqlplus执行sql报错:ORA-01756: quoted string not properly terminated 分类: 技术 在SQLPLUS中执行SQL文件时发生错误:ORA-01756: quoted string not properly terminated 但是SQL其实是没有问题的,找了很多原因,发现可能是由于使用TOAD导出SQL insert语句,编码集的问题导致的。 首先在.bash_profile文件中添加环境变量指定编码集: export NLS_LANG=American_America.AL32UTF8 但是这样做了还是不行,后来找到了解决方法: 使用类似Notepad++之类的文本编辑器将SQL文件的编码转换为 UTF-8无BOM编码格式 结果试下来就没有问题了。 ##update 2020 感谢D-Xr https://ask.csdn.net/questions/1052083 我的notepad最新版编码选项中没有UTF-8无BOM编码的选择,有谁能帮帮我吗?, UTF-8无BOM编码就是“使用UTF-8编码”,UTF-8-BOM是有BOM的。 2.BOM: Byte Order Mark UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM

Servlet_3

谁都会走 提交于 2020-03-29 21:19:09
动态web项目 采用动态Web项目-Dynamic Web Project的方式把 Java project+独立Tomcat的Hello Servlet 重新做一遍。 此时好像用不到server.xml文件了 跳转 在Servlet中进行服务端跳转的方式: request.getRequestDispatcher("success.html").forward(request, response); 服务端跳转可以看到浏览器的地址依然是/login 路径,并不会变成success.html 在Servlet中进行客户端跳转的方式: response.sendRedirect("fail.html"); 可以观察到,浏览器地址发生了变化 编码 设置接收编码 request.setCharacterEncoding("UTF-8"); 设置响应编码有两种方式 response.setContentType("text/html; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); 这两种方式都需要在response.getWriter调用之前执行才能生效 他们的区别在于 response.setContentType("text/html; charset=UTF-8"); 不仅发送到浏览器的内容会使用UTF-8编码

utf8字符集下的比较规则

有些话、适合烂在心里 提交于 2020-03-27 15:31:49
前言: 在MySQL中,比较常用的字符集是utf8和utf8mb4。这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果大家有使用4字节编码一个字符的情况,比如存储一些emoji表情啥的,需要使用utf8mb4。其实每个字符集下对应着若干个比较规则(也可以翻译为排序规则或校对规则,英文是COLLATE),同一字符集下,使用不同的比较规则会影响字符字段的比较和排序。本文以utf8为例,介绍下常用的几个比较规则的不同。 1.utf8下比较规则概览 我们先查看下utf8字符集下支持的所有比较规则: mysql> SHOW COLLATION LIKE 'utf8\_%'; +--------------------------+---------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------------+---------+-----+---------+----------+---------+ | utf8_general_ci | utf8 | 33 | Yes | Yes | 1 | | utf8_bin |

MySQL基础篇(07):用户和权限管理,日志体系简介

◇◆丶佛笑我妖孽 提交于 2020-03-26 23:45:48
3 月,跳不动了?>>> 本文源码: GitHub·点这里 || GitEE·点这里 一、MySQL用户 1、基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个root用户,作为数据库管理员,拥有所有权限。在多用户的应用场景下,可能需要给不同的用户分配不同的权限,用来提升系统的稳定性,比如常见:报表库只提供读权限,或者开放给第三方的库,也只提供可读用户。 2、用户管理 基本描述 MySQL将用户信息存储在系统数据库mysql的user表中。根据用户名密码和客户端主机来定义帐户。 用户密码:基本验证操作 ; 客户端IP:类似黑白名单的限制,支持通配符表达式 ; SELECT t.`Host`,t.`User`,t.authentication_string FROM mysql.`user` t ; 添加用户 可以对user表进行增删改查一系列操作,进而添加用户,不同的用户就会涉及到不同的操作权限,这就是另外一个问题:用户的权限管理。 这里添加一个user01用户,作为权限模块的测试用户,权限先给和root用户一样的权限。 INSERT INTO `mysql`.`user`(`Host`, `User`, `authentication_string`) VALUES ('%', 'user01', '

26号随笔-关于“Error:(1, 1) java: 非法字符: '\\ufeff'”错误解决办法

只谈情不闲聊 提交于 2020-03-26 11:30:06
用Windows记事本打开并修改.java文件保存后重新编译运行项目出现“Error:(1, 1) java: 非法字符: '\ufeff'”错误,如下图所示: 原来这是因为Windows记事本在修改UTF-8文件时自作聪明地在文件开头添加BOM导致的,所以才会导致IDEA不能正确读取.java文件从而程序出错。 解决办法 在编辑器IDEA中将文件编码更改为UTF-16,再改回UTF-8即可,其实就相当于刷新了一下文件编码。 来源: https://www.cnblogs.com/myPrBB/p/12572872.html

如何给自己的网站添加live2D女仆

十年热恋 提交于 2020-03-25 17:03:26
<script type="text/javascript" charset="utf-8" src="https://files.cnblogs.com/files/liuzhou1/L2Dwidget.0.min.js"></script> <script type="text/javascript" charset="utf-8" src="https://files.cnblogs.com/files/liuzhou1/L2Dwidget.min.js"></script> <script type="text/javascript"> L2Dwidget.init({"display": { "superSample": 2, "width": 200, "height": 400, "position": "right", "hOffset": 0, "vOffset": 0 } }); </script> 来源: https://www.cnblogs.com/yizhiduxiublog/p/12566651.html

ThinkPHP5做微信开发,微信昵称带有表情,无法保存进数据库问题。

删除回忆录丶 提交于 2020-03-25 15:41:43
在一次微信开发中,出现了用户无法注册的问题,后来排查发现,是用户的昵称中带有表情,无法存进mysql数据库(mysql使用的是utf-8编码)。 在网上查询有以下几种解决方案: 1、把昵称在保存进数据库前,进行编码转换。 2、(1)把数据库中昵称的字段改为utf8mb4 (2)把tp5的数据库配置文件中的数据库默认编码(charset),有utf-8改为 utf8mb4。 后来使用的是第2种方法解决,第一种方法按道理说也可以解决。 来源: https://www.cnblogs.com/jianzhen/p/10242653.html

Unicode utf8等编码类型的原理

穿精又带淫゛_ 提交于 2020-03-25 11:48:07
3 月,跳不动了?>>> 1、ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。 ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 2、非ASCII编码 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。 但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样