精华内容
下载资源
问答
  • MySQL 中的 VARCHAR(255) 可以存放 1 - 255 个 UTF-8 格式汉字 ... latin1 字符集最多可以存放 85 个 UTF-8 格式汉字 ... utf-8 字符集最多可以存放 255 个 UTF-8 格式汉字 ... 如果谁可以找到一个占用两字节...

    好吧这问题的最佳答案难选了 ... 我是来添乱的 ...

    楼上三个回复都正确但都不全面 ...这事情主要还是看 数据库字符集 ...

    如果是 latin1 的话 ... 计算字节长度 ... greatghoul 的答案是对的 ...

    如果是 utf-8 的话 ... 计算字符长度 ... joyeu 的答案是对的 ...

    至于 Theo 的答案里说的 4.1 为临界点的区别 ... 这事情真心和版本没什么关系 ...

    只是因为 4.1 之后才引入字符集支持的口牙!

    如果选 latin1 的话不管什么版本都会计算字节长度的口牙!

    为了避免这个答案看起来是完全照抄了楼上 ... 我提一点其他的东西 ...

    其实这题目里有另外一个坑 ... 就是要保存的东西是 汉字 ...

    如果要保存 utf-8 字符的话 latin1 字符集可以保存 63 - 127 个 ...

    但如果要保存汉字 ... 那么最大数量恐怕只有精确的 85 个 ...

    因为我在码这些字之前自己想尽了一切方法测试都没能找到一个占用四字节的汉字 ...

    怾gi 黁nun 兺bun 乯olo 乭daori 旕eosi 銰ngai 虄sari 哛popuni 硛ceoke 縇seone 穒keweoke

    这组字够不够生僻 ..? 每个字也仅仅占用三字节而已 ...

    至于两字节的汉字 ... 我也找不到 ... greatghoul 说的 〇 是错的 ... 〇占用三字节 ...

    来个总结性陈词 ...

    MySQL 中的 VARCHAR(255) 可以存放 1 - 255 个 UTF-8 格式的汉字 ...

    latin1 字符集最多可以存放 85 个 UTF-8 格式的汉字 ...

    utf-8 字符集最多可以存放 255 个 UTF-8 格式的汉字 ...

    如果谁可以找到一个占用两字节或者占用四字节的汉字那么我的这个答案就错了 ...

    找不到的话可以姑且信之 ...

    以上 ...

    展开全文
  • mysql汉字拼音取法 收藏下面的代码在gb2312字符集下测试了几个例子,都通过了。如果有问题,主要是在0x那块,因为这些16进制值是不同汉字拼音首字符开始的分界符,在不同字符集下,这些值亦有不同。我的环境在gb2312...

    mysql汉字拼音取法 收藏

    下面的代码在gb2312字符集下测试了几个例子,都通过了。如果有问题,主要是在0x那块,因为这些16进制值是不同汉字拼音首字符开始的分界符,在不同字符集下,这些值亦有不同。我的环境在gb2312下,也许你的不是,但可以参考以下写法,但愿能帮助到各位。csdn以前支持发sql代码的,现在没有了,暂时用xml格式贴出来。再贴出我在navicat下写的程序源程序截图,帮助各位看官看清。最后还得补充一句,转载请标明出处。

    view plaincopy to clipboardprint?

    01.CREATE DEFINER=`root`@`%` FUNCTION `getPinyin`(`in_string` varchar(255) charset gb2312) RETURNS varchar(255) CHARSET gb2312

    02.BEGIN

    03.    DECLARE tmp_str VARCHAR(255) charset gb2312 DEFAULT '' ; #截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值

    04.    DECLARE tmp_len SMALLINT DEFAULT 0;#tmp_str的长度

    05.    DECLARE tmp_char VARCHAR(2) charset gb2312 DEFAULT '';#截取字符,每次 left(tmp_str,1) 返回值存放在该变量中

    06.    DECLARE tmp_rs VARCHAR(255) charset gb2312 DEFAULT '';#结果字符串

    07.    DECLARE tmp_cc VARCHAR(2) charset gb2312 DEFAULT '';#拼音字符,存放单个汉字对应的拼音首字符

    08.

    09.    SET tmp_str = in_string;#初始化,将in_string赋给tmp_str

    10.    SET tmp_len = LENGTH(tmp_str);#初始化长度

    11.    WHILE tmp_len > 0 DO #如果被计算的tmp_str长度大于0则进入该while

    12.        SET tmp_char = LEFT(tmp_str,1);#获取tmp_str最左端的首个字符,注意这里是获取首个字符,该字符可能是汉字,也可能不是。

    13.        SET tmp_cc = tmp_char;#左端首个字符赋值给拼音字符

    14.        IF LENGTH(tmp_char)>1 THEN#判断左端首个字符是多字节还是单字节字符,要是多字节则认为是汉字且作以下拼音获取,要是单字节则不处理。

    15.            SELECT ELT(INTERVAL(CONV(HEX(tmp_char),16,10),0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,0xBFA6,0xC0AC

    16.                ,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,0xCBFA,0xCDDA ,0xCEF4,0xD1B9,0xD4D1),

    17.                'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z') INTO tmp_cc;   #获得汉字拼音首字符

    18.        END IF;

    19.        SET tmp_rs = CONCAT(tmp_rs,tmp_cc);#将当前tmp_str左端首个字符拼音首字符与返回字符串拼接

    20.        SET tmp_str = SUBSTRING(tmp_str,2);#将tmp_str左端首字符去除

    21.        SET tmp_len = LENGTH(tmp_str);#计算当前字符串长度

    22.    END WHILE;

    23.

    24.    RETURN tmp_rs;#返回结果字符串

    25.END

    展开全文
  • 建表如下:+----+------+--------+| id | name | pinyin |+----+------+--------+| 1 | 李 | li || 2 | 王 | wang || 3 | 张 | zhang || 4 | 刘 | liu |+----+------+--------+表中字段的编码格式如下:mysql>...

    建表如下:

    +----+------+--------+

    | id | name | pinyin |

    +----+------+--------+

    | 1 | 李 | li |

    | 2 | 王 | wang |

    | 3 | 张 | zhang |

    | 4 | 刘 | liu |

    +----+------+--------+

    表中字段的编码格式如下:

    mysql>show full columns from order_by_demo;+--------+-------------+-----------+------+-----+---------+----------------+---------------------------------+---------+

    | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |

    +--------+-------------+-----------+------+-----+---------+----------------+---------------------------------+---------+

    | id | int | NULL | NO | PRI | NULL | auto_increment | select,insert,update,references | |

    | name | varchar(10) | utf8_bin | YES | | NULL | | select,insert,update,references | |

    | pinyin | varchar(10) | utf8_bin | YES | | NULL | | select,insert,update,references | |

    +--------+-------------+-----------+------+-----+---------+----------------+---------------------------------+---------+

    3 rows in set

    可以看到name和pinyin列都是utf8编码。

    以name列进行升序排序:

    mysql> SELECT *FROM order_by_demo ORDER BY name;+----+------+--------+

    | id | name | pinyin |

    +----+------+--------+

    | 4 | 刘 | liu |

    | 3 | 张 | zhang |

    | 1 | 李 | li |

    | 2 | 王 | wang |

    +----+------+--------+

    4 rows in set

    name列并没有以汉语拼音顺序进行升序,因为utf8并不支持拼音的排序,可以如下处理:

    mysql> SELECT *FROM order_by_demo ORDER BY CONVERT(name USING GBK);+----+------+--------+

    | id | name | pinyin |

    +----+------+--------+

    | 1 | 李 | li |

    | 4 | 刘 | liu |

    | 2 | 王 | wang |

    | 3 | 张 | zhang |

    +----+------+--------+

    4 rows in set

    将想要按拼音排序的字段进行转码,转为GBK,再进行排序即可达到效果。

    展开全文
  • 在做mysql数据库中汉字的时候经常遇到乱码的问题,有时浪费两三天时间还解决不了,会感觉非常烦躁和气馁。经过与专业人士交流之后才发现简单的设置,在程序中使用gbk格式,安装客户端SQLyog Enterprise,设置字段...

         在做mysql数据库中汉字的时候经常遇到乱码的问题,有时浪费两三天时间还解决不了,会感觉非常烦躁和气馁。经过与专业人士交流之后才发现简单的设置,在程序中使用gbk格式,安装客户端SQLyog Enterprise,设置字段属性的编码,设置成gbk。 

      一般人通常都会为汉字乱码问题慌乱很长时间,在遇到这样的问题的时候一定要心平气和,坦然的面对问题、分析问题,不断的尝试,幸运的话能够遇到高人指点。

     

    如下图:

     

     

    转载于:https://www.cnblogs.com/nurbs/archive/2012/08/09/2630772.html

    展开全文
  • mysql汉字首字母排序

    2020-10-30 11:03:59
    laravel 中 musql 查询按汉字首字母排序 //汉字首字母排序 $data = \App\Models\MuCate::orderBy(DB::raw(‘CONVERT(cat_name USING gbk)’)) ...IFNULL() 函数语法格式为: IFNULL(expression, alt_valu
  • php mysql汉字乱码的解决办法:首先查看Apache目录下的PHP源文件,并将其改为utf8格式;然后在执行SQL语句命令前加上代码“mysql_query("set names utf8");”即可。本文操作环境:Windows7系统、PHP7.1、Dell G3电脑...
  • 安装mysql如果没有正确设置默认字符集,在写入中文数据的时候就会乱码,只要在连接MySQL时,正确地设定了字符集,无论数据库本身是使用什么格式编码的,都能得到正确的结果。也许有人会以为写数据时设定的字符集必需...
  • bitsCN.comVarchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian...
  • 日期只能存储此类型,但它可以与许多时间格式函数一起使用来更改并显示它。(查看原文请点击本文末尾左下角:当使用PHP在MySQL中编写查询时,它的适用性将基于MySQL本身进行检查。所以使用MySQL...
  • Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值...
  • 如果字段字段的编码格式是utf-8,那么直接使用 SELECT * FROM table ORDER BY CONVERT( 字段 USING gbk ) ;
  • Mysql数据格式

    2014-10-22 13:55:48
    Mysql数据格式 Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节 char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值...
  • 第一步:在MySQL的目录下对my.ini进行编辑设置这两项default-character-set=utf8character-set-server=utf8第二步:创建数据库时设置编码或者对已创建的数据库设置编码格式我这边用创建数据库为例create database ...
  • mysql数据库,sql查询中文汉字语句查询不到记录,而数字和英文可以查询,在cmd命令框中输入sql语句也可查询的情况。后来在mysql连接URL中加上useUnicode=true&characterEncoding=UTF-8解决了此问题。添加的作用...
  • mysql汉字拼音取法

    千次阅读 2010-11-04 22:34:00
    如果有问题,主要是在0x那块,因为这些16进制值是不同汉字拼音首字符开始的分界符,在不同字符集下,这些值亦有不同。我的环境在gb2312下,也许你的不是,但可以参考以下写法,但愿能帮助到各位。csdn以前支持发sql...
  • Mysql写入汉字乱码

    2020-08-15 19:22:06
    mysql_query(&mysql,“SET NAMES ‘GB2312’”);//设置数据库字符格式,解决中文乱码问题
  • MySQL 中的 VARCHAR(255) 可以存放 1 - 255 个 UTF-8 格式汉字 ... latin1 字符集最多可以存放 85 个 UTF-8 格式汉字 ... utf-8 字符集最多可以存放 255 个 UTF-8 格式汉字 ... 如果谁可以找到一个占用两字节...
  • mysql插入汉字问题

    2014-11-25 23:54:46
    1 在mysql中 字符集要设置成utf8或者其他格式 默认不能插入汉字
  • MySQL按照汉字拼音字母排序

    千次阅读 2015-06-15 21:51:50
    如果MySQL编码格式为GBK字符集,可直接在查询语句后面添加 order by name asc; --进行升序排序 如果是utf8字符集,需要在排序的时候对字段进行转码, order by convert(name using gbk) asc; 附:查看MySQL编码方式 ...
  • 由于中文字符采用双字节表示,所以对含有中文的字符串的处理一定要按UNICODE编码方式进行处理,也就是说,使用socket发送中文字串时要事先将字串转成UNICODE格式的。下面是简单的socket通信的代码。//服务端代码try{...
  • MySQL 中的 VARCHAR(255) 可以存放 1 - 255 个 UTF-8 格式汉字 ... latin1 字符集最多可以存放 85 个 UTF-8 格式汉字 ... utf-8 字符集最多可以存放 255 个 UTF-8 格式汉字 ... 如果谁可以找到一个占用两字节...
  • 进入 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式 模式匹配的格式。 SQL的模式匹配允许你使用"_"匹配任何单个字符,而"%"匹配任意数目字符(包括零个字符)欢迎进入Linux...
  • mysql汉字排序

    2019-10-03 20:40:01
    select sys_code as code,code_desc as codedesc from scdp_code where code_type='PROBLEM_CHILD' ORDER BY convert(sys_code using gbk) ...将 要排序 的列转为 GBK格式 convert(sys_code using gbk) 转载于:ht...
  • 在字符集为UTF-8的情况下:MySQL | ver : VARCHAR以字节为单位存储,所以假设全部为常用汉字(UTF-8 3字节编码长度),则VARCHAR(255)共可存放约85个汉字MySQL | ver >= 4.1: VARCHAR以字符为单位存储,假设...
  • 解决MySQL插入汉字报错的问题 如图是我在做mybatis实验的时候创建的数据库表 在插入数据的时候会报如下错误 Incorrect string value: ‘\xCD\xF5\xE8\xA1’ for column ‘s_name’ at row 1 但是将汉字改为英文后...
  • 今天郁闷了一天,java程序在向mysql插入数据前不是乱码,数据库安装时也选了编码为utf8(和我程序的编码格式一致)。可是插入数据就变成乱码,相当郁闷。原因:mysql的配置文件中的编码并没有改成utf8,;解决办法:在...
  • 介绍Mysql 默认安装后的编码方式默认一般是Latin, 在插入汉字数据或读取的时候,存在乱码或报错。这时候,只需要修改编码方式为UTF8,统一数据库和数据表的编码方式。如何修改1、 复制MySQL数据库中的配置文件,然后...
  • 想要给数据库写入汉字,但是出现如下错误: Incorrect string value: ‘\xC4\xD0’ for column ‘name’ at row 1 属性“name”的格式为 varchar 按理应该正确存入,存入失败应该是创建表的时候未指定字符集属性。 ...
  • ***Jquery下Ajax与PHP数据交换一、前台传递字符串变量,后台返回字符串变量(非json格式)Javascript代码:这里,为了解决Ajax数据传递出现的汉字乱码,在字符串传递之前,使用javascript函数escape()对汉字字符串进行...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 346
精华内容 138
关键字:

mysql汉字格式

mysql 订阅