精华内容
下载资源
问答
  • latin字符集
    千次阅读
    2021-01-25 19:02:43

    1. 先来看看latin1 (参考百度百科)

    Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。

    ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。

    ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。

    因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。

    2. 稍微再想想字符集

    是的,不用纠结太多了,如果数据库内表的字符集是latin1,那么默认情况下中文也可被支持!

    · latin1覆盖了所有单字节的值,任何其他的码流都可以被看做latin1

    · 把一个gbk编码的串写入latin1的表,不会有任何问题,保存的是原封不动的字节流

    · 从表中读取已写入的串也不会有任何问题,且读出的字节流就和当初写入的完全一致

    读取出来以后,如果在终端下,就会理解成locale类型(如果locale系gbk,当时写入的gbk中文串可正常回显)

    读取出来以后,如果要写入文件,则文件编码方式即当时写入的字节流编码,如gbk写入的,读出存入文件后,文件编码也是gbk!但是如果混着写(utf-8 + gbk),那编辑器就犯蒙了,就可能会显示会有乱码。

    注: 纯文本文件大多无文件头,编辑器是通过字节流自己识别编码方式和字符集的

    3. 综上,建DB和访问DB时如果都采用默认的latin1,那就不仅仅支持中文,而是支持任意的编码方式!

    附送几个数据库中文编码的经验教训:

    1. 基于可维护的角度,虽然latin1没什么问题,但是还是尽量换成utf8或者gb系列

    2. 出现乱码时:

    SHOW VARIABLES LIKE 'character%'

    SHOW VARIABLES LIKE 'collation_%';

    a、要保证数据库中存的数据与数据库编码一致,即数据编码与character_set_database一致;

    b、要保证通讯的字符集与数据库的字符集一致,即character_set_client, character_set_connection与character_set_database一致;

    c、要保证SELECT的返回与程序的编码一致,即character_set_results与程序编码一致;

    d、要保证程序编码与浏览器、终端编码一致

    3. 要想简单一点的话,就将各个字符集都设为一致的,写入mysql的配置文件,每次用客户端都设置一下字符集(set names 'xxx'),写入和读取时要记得确保字节流的编码是ok的

    更多相关内容
  • ISO Latin-1字符集

    2017-11-29 18:39:30
    ISO Latin-1字符集是Unicode字符集的一个子集,对应于IE4+中Unicode字符指令表的前256个条目。下面表格中详细提供了每个字符及字符的十进制编码和HTML已命名实体。其中Unicode字符为双字节16位,可以表示任何一种...

    ISO Latin-1字符集是Unicode字符集的一个子集,对应于IE4+中Unicode字符指令表的前256个条目。下面表格中详细提供了每个字符及字符的十进制编码和HTML已命名实体。其中Unicode字符为双字节16位,可以表示任何一种语言符号;而Latin-1字符集是单字节8位,只能够表示英文和西欧字符。本表按十进制字符编号顺序排列,可以快速查找对象字符和名称。

    ISO Latin-1字符集详细列表:

    字符十进制字符编号实体名字说明
    ---�---未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ---	---制表符Horizontal tab
    ---
---换行Line feed
    ------未使用Unused
    ------未使用Unused
    ---
---回车Carriage Return
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    --                                                                                未使用Unused
    ---  ---未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
    ------未使用Unused
      ---Space
    !!---惊叹号Exclamation mark
    """双引号Quotation mark
    ##---数字标志Number sign
    $$---美元标志Dollar sign
    %%---百分号Percent sign
    &&&Ampersand
    ''---单引号Apostrophe
    ((---小括号左边部分Left parenthesis
    ))---小括号右边部分Right parenthesis
    **---星号Asterisk
    ++---加号Plus sign
    ,,---逗号Comma
    -----连字号Hyphen
    ..---句号Period (fullstop)
    //---斜杠Solidus (slash)
    00---数字0 Digit 0
    11---数字1 Digit 1
    22---数字2 Digit 2
    33---数字3 Digit 3
    44---数字4 Digit 4
    55---数字5 Digit 5
    66---数字6 Digit 6
    77---数字7 Digit 7
    88---数字8 Digit 8
    99---数字9 Digit 9
    ::---冒号Colon
    ;&#59;---分号Semicolon
    <&#60;&lt;小于号Less than
    =&#61;---等于符号Equals sign
    >&#62;&gt;大于号Greater than
    ?&#63;---问号Question mark
    @&#64;---Commercial at
    A&#65;---大写A Capital A
    B&#66;---大写B Capital B
    C&#67;---大写C Capital C
    D&#68;---大写D Capital D
    E&#69;---大写E Capital E
    F&#70;---大写F Capital F
    G&#71;---大写G Capital G
    H&#72;---大写H Capital H
    I&#73;---大写J Capital I
    J&#74;---大写K Capital J
    K&#75;---大写L Capital K
    L&#76;---大写K Capital L
    M&#77;---大写M Capital M
    N&#78;---大写N Capital N
    O&#79;---大写O Capital O
    P&#80;---大写P Capital P
    Q&#81;---大写Q Capital Q
    R&#82;---大写R Capital R
    S&#83;---大写S Capital S
    T&#84;---大写T Capital T
    U&#85;---大写U Capital U
    V&#86;---大写V Capital V
    W&#87;---大写W Capital W
    X&#88;---大写X Capital X
    Y&#89;---大写Y Capital Y
    Z&#90;---大写Z Capital Z
    [&#91;---中括号左边部分Left square bracket
    /&#92;---反斜杠Reverse solidus (backslash)
    ]&#93;---中括号右边部分Right square bracket
    ^&#94;---Caret
    _&#95;---下划线Horizontal bar (underscore)
    `&#96;---尖重音符Acute accent
    a&#97;---小写a Small a
    b&#98;---小写b Small b
    c&#99;---小写c Small c
    d&#100;---小写d Small d
    e&#101;---小写e Small e
    f&#102;---小写f Small f
    g&#103;---小写g Small g
    h&#104;---小写h Small h
    i&#105;---小写i Small i
    j&#106;---小写j Small j
    k&#107;---小写k Small k
    l&#108;---小写l Small l
    m&#109;---小写m Small m
    n&#110;---小写n Small n
    o&#111;---小写o Small o
    p&#112;---小写p Small p
    q&#113;---小写q Small q
    r&#114;---小写r Small r
    s&#115;---小写s Small s
    t&#116;---小写t Small t
    u&#117;---小写u Small u
    v&#118;---小写v Small v
    w&#119;---小写w Small w
    x&#120;---小写x Small x
    y&#121;---小写y Small y
    z&#122;---小写z Small z
    {&#123;---大括号左边部分Left curly brace
    |&#124;---竖线Vertical bar
    }&#125;---大括号右边部分Right curly brace
    ~&#126;---Tilde
    ---&#127;---未使用Unused
     &#160;&nbsp;空格Nonbreaking space
    ¡&#161;&iexcl;Inverted exclamation
    ¢&#162;&cent;货币分标志Cent sign
    £&#163;&pound;英镑标志Pound sterling
    ¤&#164;&curren;通用货币标志General currency sign
    ¥&#165;&yen;日元标志Yen sign
    ¦&#166;&brvbar; or &brkbar;断竖线Broken vertical bar
    §&#167;&sect;分节号Section sign
    ¨&#168;&uml; or &die;变音符号Umlaut
    ©&#169;&copy;版权标志Copyright
    ª&#170;&ordf;Feminine ordinal
    «&#171;&laquo;Left angle quote, guillemet left
    ¬&#172;&notNot sign
     &#173;&shy;Soft hyphen
    ®&#174;&reg;注册商标标志Registered trademark
    ¯&#175;&macr; or &hibar;长音符号Macron accent
    °&#176;&deg;度数标志Degree sign
    ±&#177;&plusmn;加或减Plus or minus
    ²&#178;&sup2;上标2 Superscript two
    ³&#179;&sup3;上标3 Superscript three
    ´&#180;&acute;尖重音符Acute accent
    µ&#181;&micro;Micro sign
    &#182;&para;Paragraph sign
    ·&#183;&middot;Middle dot
    ¸&#184;&cedil;Cedilla
    ¹&#185;&sup1;上标1 Superscript one
    º&#186;&ordm;Masculine ordinal
    »&#187;&raquo;Right angle quote, guillemet right
    ¼&#188;&frac14;四分之一Fraction one-fourth
    ½&#189;&frac12;二分之一Fraction one-half
    ¾&#190;&frac34;四分之三Fraction three-fourths
    ¿&#191;&iquest;Inverted question mark
    À&#192;&Agrave;Capital A, grave accent
    Á&#193;&Aacute;Capital A, acute accent
    Â&#194;&Acirc;Capital A, circumflex
    Ã&#195;&Atilde;Capital A, tilde
    Ä&#196;&Auml;Capital A, di?esis / umlaut
    Å&#197;&Aring;Capital A, ring
    Æ&#198;&AElig;Capital AE ligature
    Ç&#199;&Ccedil;Capital C, cedilla
    È&#200;&Egrave;Capital E, grave accent
    É&#201;&Eacute;Capital E, acute accent
    Ê&#202;&Ecirc;Capital E, circumflex
    Ë&#203;&Euml;Capital E, di?esis / umlaut
    Ì&#204;&Igrave;Capital I, grave accent
    Í&#205;&Iacute;Capital I, acute accent
    Î&#206;&Icirc;Capital I, circumflex
    Ï&#207;&Iuml;Capital I, di?esis / umlaut
    Ð&#208;&ETH;Capital Eth, Icelandic
    Ñ&#209;&Ntilde;Capital N, tilde
    Ò&#210;&Ograve;Capital O, grave accent
    Ó&#211;&Oacute;Capital O, acute accent
    Ô&#212;&Ocirc;Capital O, circumflex
    Õ&#213;&Otilde;Capital O, tilde
    Ö&#214;&Ouml;Capital O, di?esis / umlaut
    ×&#215;&times;乘号Multiply sign
    Ø&#216;&Oslash;Capital O, slash
    Ù&#217;&Ugrave;Capital U, grave accent
    Ú&#218;&Uacute;Capital U, acute accent
    Û&#219;&Ucirc;Capital U, circumflex
    Ü&#220;&Uuml;Capital U, di?esis / umlaut
    Ý&#221;&Yacute;Capital Y, acute accent
    Þ&#222;&THORN;Capital Thorn, Icelandic
    ß&#223;&szlig;Small sharp s, German sz
    à&#224;&agrave;Small a, grave accent
    á&#225;&aacute;Small a, acute accent
    â&#226;&acirc;Small a, circumflex
    ã&#227;&atilde;Small a, tilde
    ä&#228;&auml;Small a, di?esis / umlaut
    å&#229;&aring;Small a, ring
    æ&#230;&aelig;Small ae ligature
    ç&#231;&ccedil;Small c, cedilla
    è&#232;&egrave;Small e, grave accent
    é&#233;&eacute;Small e, acute accent
    ê&#234;&ecirc;Small e, circumflex
    ë&#235;&euml;Small e, di?esis / umlaut
    ì&#236;&igrave;Small i, grave accent
    í&#237;&iacute;Small i, acute accent
    î&#238;&icirc;Small i, circumflex
    ï&#239;&iuml;Small i, di?esis / umlaut
    ð&#240;&eth;Small eth, Icelandic
    ñ&#241;&ntilde;Small n, tilde
    ò&#242;&ograve;Small o, grave accent
    ó&#243;&oacute;Small o, acute accent
    ô&#244;&ocirc;Small o, circumflex
    õ&#245;&otilde;Small o, tilde
    ö&#246;&ouml;Small o, di?esis / umlaut
    ÷&#247;&divide;除号Division sign
    ø&#248;&oslash;Small o, slash
    ù&#249;&ugrave;Small u, grave accent
    ú&#250;&uacute;Small u, acute accent
    û&#251;&ucirc;Small u, circumflex
    ü&#252;&uuml;Small u, di?esis / umlaut
    ý&#253;&yacute;Small y, acute accent
    þ&#254;&thorn;Small thorn, Icelandic
    ÿ&#255;&yuml;Small y, umlaut

    展开全文
  • 原数据库字符集latin1 -- cp1252 West European 通过navicat导出 sql文件,将sql文件导入另一台服务器的MYSQL数据库时中文出现乱码。 解决过程如下: 1、设置navicat连接属性,取消勾选 使用mysql字符集。 2、...

    原数据库字符集是latin1 -- cp1252 West European 通过navicat导出 sql文件,将sql文件导入另一台服务器的MYSQL数据库时中文出现乱码。

    解决过程如下:
    1、设置navicat连接属性,取消勾选 使用mysql字符集。

    2、新建一个与原数据库同时的数据库。比如yxk 此时要设置数据库属性中的字符集与原数据库一致,例如此处要设置为:latin1 -- cp1252 West European

    3、在navicat点击运行SQL文件,导入我们之前备份的SQL文件即可。此处的编码保持默认即可。一般是UTF-8。如果你程序使用的是GBK,那么此处也改成对应的编码GBK。

    搞定。

    提示1:最重要的一步是第2步,就是字符集一定要和之前备份出来的文件的字符付一致。

    揭示2:查看备份SQL文件的字符集的方法,可以文本编辑器打开SQL文件,里面会有DEFAULT CHARSET=latin1字样,就表示是latin1字符集。当然也可以用navicat打开原数据库,点击 数据库属性 进行查看字符集。

    特别提示:如何对SQL文件进行字符付转换

    如果想修改备份的SQL文件的字符集,比如我们之前默认的是latin1  想改成utf8字符集。那么可以用文本编辑器(例如notepad++,editplus等工具)打开SQL文件,把其中的latin1全部为utf8,最后保存即可。 

    展开全文
  • 解决Hibernate配置utf8却创建latin字符集的表

    原文链接:http://blog.tremend.ro/2007/08/14/how-to-set-the-default-charset-to-utf-8-for-create-table-when-using-hibernate-with-java-persistence-annotations/

    问题描述:在hibernate.properties中的url后面已经加了&useUnicode=true&characterEncoding=utf8,但是自动创建的表依然是latin字符集的,且中文插入是乱码。


    解决方法:

    hibernate.properties 中的dataSource.url后面加上&useUnicode=true&characterEncoding=utf8

    注:spring或者hibernate.cfg.xml配置类似,不详细举例

     

    测试发现,此方法程序运行插入数据结果抛出异常,追踪异常发现是乱码的问题,导致sql语句不能执行。

    ok,有点思路了,我连接之前的数据库或者导出utf-8的数据库再导入进来,此方法连接没有问题,插入数据也不会乱码,所以猜想是hibernate创建表的时候没有指定utf-8编码。

     

    既然是这样,重写下MySQL5InnoDBDialect然后在配置文件中指定该类呗。


    package dialect;
    
    import org.hibernate.dialect.MySQL5InnoDBDialect;
    
    
    /** 
     * 
     * Extends MySQL5InnoDBDialect and sets the default charset to be UTF-8 
     * @author Sorin Postelnicu 
     * @since Aug 13, 2007 
     */
    public class CustomMysqlDialect extends MySQL5InnoDBDialect {
        public String getTableTypeString() {
            return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
        }
    }


    然后修改hibernate.properties中的dataSource.dialect

    dataSource.dialect=dialect.CustomMysqlDialect

    同样,dataSource.url后面也要加上&useUnicode=true&characterEncoding=utf8

    ok,让hibernate重新建个数据库吧,重启下项目。问题解决~



    展开全文
  • 作者:秦广飞 爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查...该批次的 MySQL 客户端字符集全部为 Latin1 ; 而之前使用同样参数模板部署的 MySQL ,客户端字符集却为 utf8 ; 已知 MySQL 版本为 5.7.
  • MySQL字符集:cp1252 West European (latin1) ,解决乱码问题 使用虚拟主机空间上的phpmyadmin操作数据库的时候,如果看到phpmyadmin首页上显示的MySQL 字符集为cp1252 West European (latin1),当我们导入数据时就会...
  • mysql5.7默认字符集latin,更改为utf8就好了 一、配置mysql5.7默认字符集为utf8 第一步: 注意不是登陆mysql在里面输入,直接打开DOS输入即可 vim /etc/my.cnf 第二步:在文本最后一行加上 character_set_server=...
  •  在MySQL中,最常见的字符集有ASCII字符集、latin字符集、GB2312字符集、GBK字符集、UTF8字符集等,下面我们简单介绍下这些字符集: ASCII字符集  这个字符集使用1个字节进行编码,一个字节具有8位,总共可以保存...
  • ISOLatin-1字符集[借鉴].pdf
  • 如果在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足要求需要调整,那么就需要进行字符集的修改。字符集的修改不能直接通过alterdataabasecharacterset***;或者 ...
  • 可以采用下面的方法latin1字符集转换为gbk字符集或utf8字符集。具体的转换步骤如下:一、latin1转gbk1、导出数据库mysqldump --default-character-set=latin1 -h 数据库连接ip -u root -P 3306 -p数据库密码 db_name...
  • 下面说一下,怎么样字符集统一成utf8 1,建一个空数据库 2,把表结构和数据是utf8的表导出,然后直接导入到新的数据库中 3,数据表和数据都是latin1的表,先导出表结构和数据,加上–default-character-set=latin1,...
  • MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的。 character-set-database:数据库字符集。 character-set-table:数据库表字符集。 优先级依次增加。所以...
  • 对于mysql 5.5 而言,如果不设定字符集,mysql默认的字符集latin1 拉丁文字符集; 但随着各种业务的进一步发展,除了各个国家的本身语言字符,经常也会有一些表情符号出现在应用程序中,而在mysql 5.5 之前,UTF-...
  • NULL 博文链接:https://lijunjie.iteye.com/blog/456650
  • 为什么Mysql默认的字符集都是latin1关注:151答案:2mip版解决时间 2021-01-25 17:36提问者旧梦已过期2021-01-25 03:58为什么Mysql默认的字符集都是latin1最佳答案二级知识专家清酒孤欢2021-01-25 05:19MySQL 乱码的...
  • 1、查看字符集相关变量 mysql> show variables like 'character%'; +————————–+——————————-+ | Variable_name | Value | +————————–+——————————-+ | character_set_client...
  • 如果在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足要求需要调整,那么就需要进行字符集的修改。字符集的修改不能直接通过alterdataabasecharacterset***;或者...
  • MySQL默认字符集latin,若要正确显示中文,需要将字符集更改未utf8。修改字符集在ubuntu14和ubuntu16下略有不同。  编辑配置文件my.cnf  $sudo vim /etc/mysql/my.cnf  [client]  default-character-set=...
  • 安装MySQL5.5.40版本后,默认字符集latin1,输入中文乱码,直接修改my.ini文件中[mysql] default-character-set 和 [mysqld] character-set-server,导致MySQL服务无法启动 解决方案: 使用MySQL 5.5.40自带设置...
  • 深入Mysql字符集设置分析,使用mysql的朋友可以参考下
  • 查看、设置与修改MySQL字符集

    千次阅读 2020-12-24 21:08:04
    前一段时间,一直被MySQL的字符集困扰,今天就这方面的知识总结一下。MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器...
  • 最近在工作中遇到一个问题,MySQL数据库建表的时候采用的是latin字符集,而网页中查询的是utf-8,当输入页面输入中文,然后再数据库中查询的时候,就会报出 ER_CANT_AGGREGATE_2COLLATIONS: Illegal mix of ...
  • 此方法针对latin1编码存储数据的数据库(插入的数据编码格式未知)。使用php读出数据,需要加入mysql_query(“SET NAMES ‘LATIN1′”)此时会发现latin1输出的中文乱码在页面显示已经可以正常(页面的编码是gbk,这时...
  • Mysql数据库是一个开源的数据库,应用非常广泛。以下是修改mysql数据库的字符编码的操作过程和将表的字符编码转换成utf-8的方法,需要的朋友可以参考下
  • MySQL 字符集设置

    2021-04-21 03:47:38
    数据库建库时默认是设置的latin1编码,查看系统的字符集和排序方式show variables like'character%';SHOW VARIABLES LIKE'collation_%';SET NAMES gb2312;show variables like 'character%';SET NAMES x相当于SET ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,630
精华内容 19,052
关键字:

latin字符集