【问题标题】:How to insert latin characters into Mysql from the command line shell?如何从命令行 shell 将拉丁字符插入 Mysql?
【发布时间】:2010-02-18 07:25:22
【问题描述】:

为什么我不能通过命令行 mysql 程序插入单词 Español ?请参阅下面的会话。

mysql> select CONCAT( 'Espa', 0xF1, 'ol' );
+------------------------------+
| CONCAT( 'Espa', 0xF1, 'ol' ) |
+------------------------------+
| Español                       |
+------------------------------+
1 row in set (0.00 sec)

mysql> create table t 
    > ( 
    >     nom varchar(25) NOT NULL 
    > ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql> insert into t VALUES( CONCAT( 'Espa', 0xF1, 'ol' ) );
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql> select * from t;
+------+
| nom  |
+------+
| Espa |
+------+
1 row in set (0.00 sec)

mysql> select HEX(nom) from t;
+----------+
| HEX(nom) |
+----------+
| 45737061 |
+----------+

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

【问题讨论】:

    标签: mysql database internationalization


    【解决方案1】:

    0xf1 不是一个有效的 UTF-8 序列,所以它会窒息。请改用正确的 UTF-8 序列:

    $ python -c "print repr('\xf1'.decode('latin-1').encode('utf-8'))"
    '\xc3\xb1'
    

    【讨论】:

    • 太棒了。这行得通。插入 t VALUES(CONCAT('Espa', 0xc3, 0xb1, 'ol'));
    【解决方案2】:

    它似乎可以使用 latin1 作为默认字符集。

    【讨论】:

    • 我也需要存储汉字,所以无法切换到latin1。
    猜你喜欢
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2022-11-18
    • 2011-02-15
    • 2014-08-05
    • 2022-01-09
    相关资源
    最近更新 更多