草庐IT

utf8_general_ci

全部标签

mysql - utf8 数据在 mysql 中看起来不错,但在 rails 中损坏了

我正在为我的一位使用Mac的同事设置Rails环境(以防万一)。我已经从我们的实时mysql数据库中提取数据,并使用该数据创建了一个本地开发数据库。如果我打开mysql控制台,并查看在其名称字段中具有扩展字符集字符的记录的数据,那么它看起来很好。然而,在rails控制台(以及在rails生成的网页中)编码被破坏:例如,endash被替换为“–”。我所知道的唯一与此相关的rails配置选项在config/database.yml中。我目前有这套:encoding:utf8collation:utf8_general_ci例如,这使得它在我的机器上运行良好。但是就像我说的那样,它在我同事的

带有来自 mysql db 的重音的 Php utf8 文本正则表达式出错

我的MySQL(所有utf8)数据库中有一些带有重音符号的数据。就像“7hà18H”(法语,意思是早上7点到下午6点)。在我的php脚本中,我将mysql连接编码设置为utf8,当我在那里收集文本“7Hà18H”时,重音符号在CLI中正确显示(因为我在CLI中运行脚本)。然后在我尝试解析表达式之后preg_match("#[0-9]+H[Àà][0-9]+H#i",$text);但正则表达式不匹配。我不明白为什么然后我尝试了这个表达式preg_match("#[0-9]+H[Àà]#i",$text,$matches)它奏效了,但匹配是:array(1){[0]=>string(4)"

mysql - 从 utf8_general_ci 转换为 utf8_unicode_ci

我有一个utf8_general_ci数据库,我有兴趣将其转换为utf8_unicode_ci。我试过以下命令ALTERDATABASEdbnameCHARACTERSETutf8COLLATEutf8_unicode_ci;ALTERTABLEtbl_nameCONVERTTOCHARACTERSETutf8COLLATEutf8_unicode_ci;(foreverysingletable)但这似乎改变了future数据的字符集,但并未将实际存在的数据从utf8_general_ci转换为utf8_unicode_ci。有什么方法可以将现有数据转换为utf8_unicode_ci

mysql - 对于所有世界语言,我必须使用 utf8_general_ci 或 utf8_unicode_ci 或任何其他排序规则?

我们开发安卓应用。该应用程序接受来自用户的文本并上传到服务器(mysql)。然后其他用户会阅读此文本。在测试时我发现“印地语”(印度语)作为“??????”插入列中'.然后在SO搜索之后,我将排序规则更改为utf8_general_ci。我是整理新手。我想让用户输入世界上任何语言的文本,其他人也可以访问。我该怎么办。准确性必须。但我看到一条评论说,“你永远不应该使用utf8_general_ci。它根本不起作用。这是对五十年前ASCIIstooopeedity糟糕时代的倒退。Unicode不区分大小写的匹配不能在没有UCD的foldcasemap的情况下完成。例如,“Σίσυφος”中

mysql - 是否有打开/关闭 general_log 全局设置的查询?

我可以简单地通过查询切换(全局)变量的状态吗?也就是说,如果它是'ON',则将其设置为'OFF',如果它是'OFF',则将其设置为'ON'.我试过这个:SETGLOBALgeneral_log=IF(general_log='ON','OFF','ON')但这会产生错误。 最佳答案 试试这个:setglobalgeneral_log=if(@@general_log,'OFF','ON')请注意,@@general_log是0或1(它是一个bit类型)并且在MySQL中这些值分别是false和true。

mysql - UTF8 和日语字符

问题:外来字符没有按应有的方式显示。这包括德语、日语、俄语和除英语以外的所有其他语言(完美运行)。OnesPHP通过jQueryAJAX调用对MySQL进行调用,它应该返回信息并将其显示在页面上。数据被调用并显示。但是对于非英语字符,结果显示为“?”。在phpMyAdmin中,数据显示在日语、德语等语言中应该是这样。但是从MySQL中获取的数据不会原样返回。问题不是由浏览器引起的,因为我的浏览器支持所有语言编码。MySQL编码:UTF8_GENERAL_CI页面编码:UTF-8问题可能出在PHP从MySQL中获取数据,因为在通过phpMyAdmin查看的MySQL中它看起来很好。下面是

mysql - 在 SQL 语句中对 utf8_bin 中的字段进行 COLLATE 比使用默认排序规则慢?

两种情况:使用默认排序规则:CREATETABLEIFNOTEXISTS`table`(`name`varchar(255)collateutf8_general_ciNOTNULL,UNIQUEKEY`name`(`name`))ENGINE=MyISAMDEFAULTCHARSET=utf8;SELECT`name`FROM`table`ORDERBY`name`;使用COLLATE:CREATETABLEIFNOTEXISTS`table`(`name`varchar(255)collateutf8_binNOTNULL,UNIQUEKEY`name`(`name`))ENGIN

php - 当我知道 ci 中表的一半名称时如何删除表

我有两个名字的表组合,这两个名字在不同的表中,如friend1和friend2。当我从friend1或friend2中删除一个名字时,我应该删除组合表。现在我只知道表示例名称的一半:表名是thamaraiselvam_kuppuraj当我从friend2表中删除kuppuraj时。我还应该删除thamaraiselvam_kuppuraj表。如何为此编写查询?$this->dbforge->drop_table('tablename');我可以使用上面的查询进行一些修改吗?提前致谢 最佳答案 首先需要找到表名:showtablesl

php - PDO异常 : SQLSTATE[HY000]: General error: 3 Error writing file '/tmp/MYHKgYpv' (Errcode: 28)

我已经安装了Visitor模块Drupal7。我使用www.domain.com/visitors查看了报告。所有报告都运作良好。但是当我查看用户事件报告时,它显示以下错误。PDOException:SQLSTATE[HY000]:Generalerror:3Errorwritingfile'/tmp/MYHKgYpv'(Errcode:28):SELECTu.nameASname,u.uidASuid,COUNT(DISTINCTv.visitors_id)AShits,COUNT(DISTINCTn.nid)ASnodes,COUNT(DISTINCTc.cid)AScomment

php - 为什么从 utf8 更改为 utf8mb4 会降低我的数据库速度?

我的PHPWeb应用程序中的所有MySQL表都是采用utf8编码的MyISAM。由于记录可以在离线时从配套应用程序生成,因此我的表键是随机生成的,字母数字VARCHAR;这些字段使用utf8_bin编码设置为二进制,因此可以区分大小写。我最近决定更改所有文本字段的编码,以支持某些用户喜欢输入的表情符号。我继续将所有utf8字段更改为utf8mb4,包括键。我立即开始看到性能问题,其中一个较大表上的复杂SELECT查询花费了超过一分钟的时间,然后其他查询排队等待表锁。我把那个表的主键字段编码改回utf8,性能恢复正常。几天后,我再次将该字段更改为utf8mb4,查询再次开始排队,我将其更