精华内容
下载资源
问答
  • 大家根据什么来选择版本呢,很多网友说防站肯定看想要防网站使用什么编码格式在选择了,可是当你选择的是utf-8的,运营一段时间了,想更换为gbk怎么办呢,下面笔者针对这个问题跟大家谈谈我方法:...

    大家是根据什么来选择版本的呢,很多网友说防站肯定是看想要防的网站是使用什么样的编码格式在选择了,可是当你选择的是utf-8的,运营一段时间了,想更换为gbk的怎么办呢,下面笔者针对这个问题跟大家谈谈我的方法:

    转换前准备:

    DEDECMS(织梦)内容管理系统的演示和下载请访问:织梦(DEDECMS)内容管理系统

    1、

    了解关于编码的一些基础知识是必须的,请阅读织梦(dedecms)网站管理系统GBK和UTF8版本的区分(选择)

    2、 工具准备:Editplus 编辑器。

    3、 准备dedecms v5.6 gbk版安装包。

    4、 了解帝国备份王数据软件的使用方法。

    5、 转换前首页信息截图:

    转换前首页截图:

    说明:

    安装版本:dedecms v5.6 utf8

    访问地址:http://xxx.com/

    任务:将网站http://xxx.com/由UTf8版本转换为GBK版。

    写在转换之前:要转换dede系统的版本,实际就是编码转换问题,要将mysqls数据从utf8转换为gbk编码,将模板文件的编码也要转换为GBK模式。在本文中两个核心工具,帝国备份王和Editplus

    编辑器。帝国备份王(EmpireBak),是非常强大的,灵活的运用它,就可以创造奇迹。用EmpireBak工具的备份/恢复功能,巧妙dede数据库utf-8编码的无错转换为gbk编码格式。站点文件的转换就用Editplus

    编辑器。这是无忧主机(www.51php.com)将dede系统utf8转换为gbk版本的解决思路。

    实战第一步:备份

    备份,请在转换之前,请将dede做整站备份,备份内容包括mysql数据库,dede站点文件,如果网站容量非常大的话,可以登录php空间管理后台将整个网站进行打包,然后下载。知道点击阅读无忧主机如何快速下载网站数据(稍后更新)。备份的目的就是了防止转换失败后还有退路。

    登录dede后台,备份mysql数据库

    登录dede后台,选择“系统 ”中 “数据库备份/还原

    ”备份dede数据库。这一个备份数据是为了保障转换失败而备份,备份完毕,请登录ftp下载到本地电脑保存。Dede备份数据存储位置:/data/backupdata

    实战第二步:dede数据库编码转换

    用帝国备份王(EmpireBak)反向操作,强制转换dedecms v5.6

    utf8版本的mysql数据编码为gbk。打开帝国备份王(EmpireBak)工具,选择“备份数据”请注意操作,这是关键!php虚拟主机安装的dede系统是utf8版,在备份的时候不能选择

    “utf8编码进行备份

    ”。在这里要反向操作(如果是utf8就选gbk,如果是gbk就选utf8)。备份时候请注意:数据库编码要要选择:gbk,不能选择其它方式,否则在转换后会出现乱码显现。数据存储目录命名为:usertest_date_gbk。

    网上有很多方法也讲过这个dede系统编码转换的问题,其方法是用phpmyadmin将数据导出后,然后将“将CHARSET=uft8替换为CHARSET=gbk”,后再将改好的数据库回去。无忧主机认为,此方法在操作时候,过于复杂,需要用户对phpmyadmin的操作非常熟悉,这里推荐用户使用EmpireBak工具,方便、快捷、省时、无错转换。如图

    实战第三步:将gbk格式的dede数据库备份恢复到系统。

    1、登录空间ftp,新建任意目录(dede_utf8_web),将所有dedecmsutf8版站点文件全部移动到dede_utf8_web目录,上传dedecmsv5.6gbk,重新安装dede系统。

    2、在安装dedecms5.6(gbk

    )版时,不用选择安装体验数据包,以节约时间。安装完毕后,再次登录EmpireBak数据库备份工具,选择“数据恢复”,恢复第二步骤中将utf8编码强制转换为gbk格式的数据库(usertest_date_gbk)。

    展开全文
  • 特殊字符,例如Emoji 表情,需要改数据库的编码格式需要把utf8 -default collation 改成utf8mb4 -utf8mb4_unicode_ci 注意:表和字段的都需要改一、什么是UTF8MB4?我们在使用PhpMyAdmin管理面板时,可以在首页看到...

    特殊字符,例如Emoji 表情,需要改数据库的编码格式需要把utf8 -default collation  改成utf8mb4 -utf8mb4_unicode_ci 注意:表和字段的都需要改


    一、什么是UTF8MB4?

    我们在使用PhpMyAdmin管理面板时,可以在首页看到名为“Server connection collation”(服务器连接排序规则)的选项,用来选择所使用的字符集。对于我们常用的UTF8,却有utf8和utf8mb4两种,这是为什么呢?

    原来,MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。当然,为了节省空间,一般情况下使用utf8也就够了。

    二、为什么会有UTF8MB4?

    既然utf8应付日常使用完全没有问题,那为什么还要使用utf8mb4呢? 低版本的MySQL支持的utf8编码,最大字符长度为 3 字节,如果遇到 4 字节的字符就会出现错误了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xFFFF,也就是 Unicode 中的基本多文平面(BMP)。也就是说,任何不在基本多文平面的 Unicode字符,都无法使用MySQL原有的 utf8 字符集存储。这些不在BMP中的字符包括哪些呢?最常见的就是Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和一些不常用的汉字,以及任何新增的 Unicode 字符等等。

    三、扩展阅读:UTF-8编码

    理论上将, UTF-8 格式使用一至六个字节,最大能编码 31 位字符。最新的 UTF-8 规范只使用一到四个字节,最大能编码21位,正好能够表示所有的 17个 Unicode 平面。关于UTF编码,请阅读《常见编码总结》一文。

    而utf8 则是 Mysql 早期版本中支持的一种字符集,只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面。这可能是因为在MySQL发布初期,基本多文种平面之外的字符确实很少用到。而在MySQL5.5.3版本后,要在 Mysql 中保存 4 字节长度的 UTF-8 字符,就可以使用 utf8mb4 字符集了。例如可以用utf8mb4字符编码直接存储emoj表情,而不是存表情的替换字符。

    为了获取更好的兼容性,应该总是使用 utf8mb4 而非 utf8,事实上,最新版的phpmyadmin默认字符集就是utf8mb4。诚然,对于 CHAR 类型数据,使用utf8mb4 存储会多消耗一些空间。


    展开全文
  • mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci 问题:今天在公司项目日志里面看到了这么一个报错,如下图:...解决方法当然数据库该字段编码格式改成utf8mb4 到底utf8utf8mb4有什么区别呢? ...

    mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci

    问题:今天在公司项目的日志里面看到了这么一个报错,如下图:在这里插入图片描述
    这问题一看就是编码的问题,怎么产生的呢?
    1、可能用户有添加emoji的表情
    2、MySQL 的 utf8 并不是真正的 utf8

    解决方法当然是把数据库该字段的编码格式改成utf8mb4

    到底utf8和utf8mb4有什么区别呢?

    1.utf8与utf8mb4(utf8 most bytes 4)

    MySQL 5.5.3之后增加了utfmb4字符编码
    支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符
    最多使用四个字节存储字符
    utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。

    标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。
    MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。

    2.字符集、连接字符集、排序字符集

    utf8mb4对应的排序字符集有utf8mb4_unicode_ci、utf8mb4_general_ci.
    utf8mb4_unicode_ci和utf8mb4_general_ci的对比
    1)准确性:
    utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序
    utf8mb4_general_ci没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。
    但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。
    2)性能:
    utf8mb4_general_ci在比较和排序的时候更快
    utf8mb4_unicode_ci在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
    但是在绝大多数情况下发,不会发生此类复杂比较。相比选择哪一种collation,使用者更应该关心字符集与排序规则在db里需要统一。

    展开全文
  • MySql中数据库编码我推荐utf8mb4MySQL 中 utf8utf8mb4 区别编码ASCII比特为什么会有UTF-8回顾标题为什么MySql中不建议使用UTF-8? MySQL 中 utf8utf8mb4 区别 在电脑上处理文字时候,你可能经常接触到...

    MySQL 中 utf8 和 utf8mb4 的区别

    在电脑上处理文字的时候,你可能经常接触到一个名词,叫UTF-8。
    你会不会觉得一丝疑惑,这到底是什么东西?
    用一句话说明的话,UTF-8是一种编码格式,一个字节包含8个比特。
    等会,什么是编码,什么又是比特?为什么要用这个东西?

    编码

    我们都知道人有人的语言,计算机有计算机的语言,就是机器语言,所谓的二进制,0和1,1代表有一个信号,0表示没有信号。由0和1组成的计算机语言的字符串去翻译我们生活中对应字符的这个过程我们称之为编码。

    ASCII

    ASCII是由美国出台的信息交换标准代码,是现在通用的单字节编码系统。(我们俗说的计算机语言)

    比特

    因为ASIIC码有8位数,每位是一个比特 (bit),8位就是一个字节 (byte)。

    为什么会有UTF-8

    因为世界上各国语言字符类型都比较多,且对可以用ASCII表示的字符使用UNICODE并不高效,因为Unicode比ASCII码占用大一倍的空间,对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符及,他们被称为通用转换格式,即UTF(Unicode Transformation Format)。常见的UTF格式有UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32。

    字符集为每个字符分配了一个唯一的编号,通过这个编号就能找到对应的字符。在编程过程中我们经常会使用字符,而使用字符的前提就是把字符放入内存中,毫无疑问,放入内存中的仅仅是字符的编号,而不是真正的字符实体。
    Unicode 可以使用的编码有三种,分别是:

    • UFT-8:一种变长的编码方案,使用 1~6 个字节来存储;
      UFT-32:一种固定长度的编码方案,不管字符编号大小,始终使用 4 个字节来存储;
      UTF-16:介于 UTF-8 和 UTF-32 之间,使用 2 个或者 4 个字节来存储,长度既固定又可变。

    UTF 是 Unicode Transformation Format 的缩写,意思是“Unicode转换格式”,后面的数字表明至少使用多少个比特位(Bit)来存储字符。

    UTF-8 的编码规则就是:如果只有一个字节,那么最高的比特位为 0;如果有多个字节,那么第一个字节从最高位开始,连续有几个比特位的值为 1,就使用几个字节编码,剩下的字节均以 10 开头。

    只有 UTF-8 兼容 ASCII,UTF-32 和 UTF-16 都不兼容 ASCII,因为它们没有单字节编码。

    回顾标题为什么MySql中不建议使用UTF-8?

    事情起源于我一次操作数据库表时存储表情(emoji)字符串,报了> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘,"\xF0\x9F\x98\x93","\xF0\x9F\x98\x93",0)’ at line 1 的错误,各种排查自己代码,发现自己用的一直都是UTF-8的字符编码。
    网上查了很多人建议将数据库系统编码UTF-8改成utf8mb4即可。
    那么为什么要修改呢?
    在 MySQL中,“utf8”编码只支持每个字符最多三个字节,而标准的 UTF-8编码是每个字符最多四个字节。
    在MySQL5.53中,mysql更新了utf8mb4这个系统编码,mb4就是most bytes 4的意思,支持了特殊符号和繁体字,专门用来兼容四字节的unicode。utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。

    展开全文
  • } else { charsetName = "UTF-8"; } System.out.println(charsetName); while ((line = bufferedReader.readLine()) != null) { String[] columns = line.split("\t"); String last = columns[1]; System.out....
  • 意思:指定字符编码、解码格式mysql数据库的是gbk编码,而你项目mysql数据库需要的是utf-8编码,所以在url后面添加?useUnicode=true&characterEncoding=utf-8",表示(1)数据库在存放...
  • 一、什么是字符集Oracle字符集一个字节数据解释符号集合,有大小之分,有相互包容关系。ORACLE支持国家语言体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期...
  • MSQL数据库的编码格式

    千次阅读 2020-09-09 10:18:56
    一个UTF8占三个字节(也与操作系统版本有关,有版本为3有为2),如果只存英文,则一个latin1占1个字节 select length(“开心工作”); 查看开心工作占几个字节,需要先看他是什么编码格式,length为看字节...
  • txt文件导入数据库的utf-8问题

    千次阅读 2015-11-10 23:58:07
    首先解决一切问题方法都自己找资料,百度得来,所以并没有什么自创性代码之类,只是对一些小问题解决方法总结。 将数据导入数据库时,先创建一张表,确定每一个字段,由于数据较多,所以选择将数据...
  • 不管错误信息中你的数据库字符集是什么,都由于数据库服务端和你客户端字符集不统一造成。影响Oracle数据库字符集最重要参数NLS_LANG参数。它的格式如下: NLS_LANG = language_territory.charset。它有三...
  • 不管错误信息中你的数据库字符集是什么,都由于数据库服务端和你客户端字符集不统一造成。影响Oracle数据库字符集最重要参数NLS_LANG参数。它的格式如下: NLS_LANG = language_territory.charset。它有三...
  • 我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢?   添加的作用:指定字符的编码、解码格式。  例如:mysql数据库用的gbk编码,而项目...
  • 我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢? 添加的作用:指定字符的编码、解码格式。 例如:mysql数据库用的gbk编码,而项目数据库...
  • 我们在连接MySQL数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢?   添加的作用:指定字符的编码、解码格式。  例如:mysql数据库用的gbk编码,而...
  • 满意答案sharita2015.06.24采纳率:40%等级:10已帮助:3572人我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢?添加的作用:指定字符的编码...
  • mysql修改数据库表和表中字段编码格式的修改

    万次阅读 多人点赞 2016-03-04 17:29:50
    数据库的时候,已经选择了编码格式UTF-8 但是用PDM生成的脚本导进去的时候却奇怪的发现表和表的字段的编码格式GBK,一个一个却又觉得麻烦,在网上找了一下办法 一个修改表的编码格式的 ALTER TABLE `table...
  • MySQLUTF-8编码方式MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,然而目前流行UTF-8 标准(RFC 3629)在此之后规定。正因此,才造就了MySQL中UTF-8与我们日常...问题复现有数据库表如下:utf8编码方式...
  • 和该主题相关类似或不同表达 FSO写UTF-8编码文件 FSO怎么才能生成utf-8编码文件 FSO生成文件默认是什么编码格式 如何转换成UTF-8编码 FSO生成静态网页问题 ASP中用FSO生成文件代码如下 代码如下: function ...
  • 修改过my.ini文件,配置过编码过滤器,数据库和后台编码方式都是utf8,mysql字符集也是utf8 但是查询出来数据乱码,插入到没有乱码, 那究竟是什么原因呢? 那大概率就是IDEA乱码了 解决方式可以在图中所...
  • 我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢?添加的作用:指定字符的编码、解码格式。例如:mysql数据库用的gbk编码,而项目数据库用...
  • 在编写网页,设置数据库等时候,我们都习惯将字符编码设置为UTF8,但为什么要设置为UTF8?有些网页为什么它又会设置GBK呢?关于字符编码类型,这个对于开发人员应当要有所了解,选择字符编码要对应合适场景。...
  • utf8的理解

    2007-06-30 00:47:00
     首先要需要了解的是web容器默认编码iso-8859-1,一个汉字占用两个字节,而在utf-8中一个汉字占用三个字节。所以在数据传递过程中,必须手动设定容器编码格式,否则会出现字符位丢失情况。即3个字节变为两个...
  • useUnicode=true&characterEncoding=UTF-8 作用

    万次阅读 多人点赞 2019-01-21 15:02:56
    我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢? 添加的作用:指定字符的编码、解码格式。  例如:mysql数据库用的gbk编码,而...
  • 数据库1366报错

    千次阅读 2019-05-28 20:40:14
    数据库的1366报错,一般是数据库的编码格式有问题,数据库的默认编码格式是latin1,一开始创建数据库就指定编码utf8就没什么问题.后可通过修改数据库,表格和所有字段的编码格式可消除1366报错 修改数据库编码格式 ALTER...
  • PythonMySQLdb模块Python连接MySQL...等索引下标访问数据默认连接数据库:MySQLdb.connect(host=host,user=user,passwd=passwd,db=db,port=port,charset='utf8')查询数据:cur = conn.cursor()cur.execute('sel...
  • query("set names utf8;");但是还是出现了在mysql中读取数据出现乱码和问号情况。后来实在无解,将mysql设置为gbk编码,居然能正确显示,简直就是颠覆了三观。。至今不知道为什么。但是在这过程中也了解到了...
  • 我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢?   添加的作用:指定字符的编码、解码格式。  例如:mysql数据库用的gbk编码,而项目...
  • 我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢?添加的作用:指定字符的编码、解码格式。例如:mysql数据库用的gbk编码,而项目数据库用...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 305
精华内容 122
关键字:

utf8是数据库的什么格式