尝试解决这个问题已经很长时间了......
SELECT MATCH(name) AGAINST('абраксас')
(俄语)不起作用,但是
SELECT MATCH(name) AGAINST('abraxas')
(英语)工作完美。
我知道这是字符集的问题,但我尝试了各种设置,但没有用。
目前是 latin-1。
喜欢作品
这是与显示变量
相关的字符集:
character_set_client - latin1
character_set_connection - latin1
character_set_database - latin1
character_set_filesystem - binary
character_set_results - latin1
character_set_server - latin1
character_set_system - utf8
character_sets_dir - /usr/share/mysql/charsets/
collation_connection - latin1_swedish_ci
collation_database - latin1_swedish_ci
collation_server - latin1_swedish_ci
/etc/my.cnf block
default-character-set=latin1
skip-character-set-client-handshake
转储 block :
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
DROP TABLE IF EXISTS `scenes_raw`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `scenes_raw` (
`scene_name` varchar(40) DEFAULT NULL,
...blabla...
) ENGINE=MyISAM AUTO_INCREMENT=901 DEFAULT CHARSET=utf8;
(我也做了没有skip-character-set-client-handshake的测试)
SHOW TABLE STATUS WHERE Name = 'scenes_raw'\G
Name: scenes_raw
Engine: MyISAM
Version: 10
Row_format: Dynamic
Index_length: 23552
Collation: utf8_general_ci
Checksum: NULL
Create_options:
最佳答案
尝试将您的character_set_client 设置为UTF-8。我刚刚尝试了一下:
> mysql -u root -p charset_test --default-character-set=latin1
mysql> select * from scenes_raw where MATCH(scene_name) AGAINST('абраксас');
Empty set (0.00 sec)
> mysql -u root -p charset_test --default-character-set=utf8
mysql> select * from scenes_raw where MATCH(scene_name) AGAINST('абраксас');
+------------------+
| scene_name |
+------------------+
| абраксас |
+------------------+
1 row in set (0.00 sec)
编辑:有关更多详细信息,请参阅this explanation. “SHOW VARIABLES”输出中的“character_set_client”是 MySQL 客户端用于发送到服务器的字符集。当它是Latin-1时,它不支持西里尔字母,但是当它是UTF-8时,它应该可以正常工作。
关于mysql 与俄罗斯的比赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2463092/