【问题标题】:Scandinavien characters in mysql are not shown correctlymysql 中的斯堪的纳维亚字符未正确显示
【发布时间】:2013-04-14 12:48:43
【问题描述】:

在我的数据库中插入表时出现问题。运行的服务器是 Ubuntu:

分销商 ID:Ubuntu 说明:Ubuntu 12.04.2 LTS 发布时间:12.04 代号:精确

我通过以下方式创建了一个包含一个表的数据库:

数据库创建 mysql>创建数据库test1234 CHARACTER SET latin1;

表创建 mysql>create table testtbl (test varchar(22) CHARACTER SET latin1);

插入 mysql>insert into testtbl (test) values ('asdsdaæø');

选择器: mysql> select * from testtbl;

+--------------+
|测试 |
+--------------+
| |
| asdsda |
|邛郸鸳鸯|
|邛郸鸳鸯|
| asdadsæøå |
+--------------+
一组 5 行(0.00 秒)

mysql Ver 14.14 Distrib 5.5.29,适用于使用 readline 6.2 的 debian-linux-gnu (x86_64)

连接 ID:427
当前数据库:test1234
当前用户:root@localhost
SSL:未使用
当前寻呼机:标准输出
使用输出文件:''
使用分隔符:;
服务器版本:5.5.29-0ubuntu0.12.04.2-log (Ubuntu)
协议版本:10
连接:通过 UNIX 套接字的本地主机
服务器字符集:latin1
数据库字符集:latin1
客户端字符集:latin1
康涅狄格字符集:latin1
UNIX 套接字:/var/run/mysqld/mysqld.sock
正常运行时间:12 天 19 小时 9 分 35 秒

我也尝试过使用 utf8,但结果相同。

来自 /var/log/mysql/mysql.log
130421 18:03:06 427 查询插入到 testtbl(测试)值('asdads') 130421 18:03:08 427 查询select * from testtbl

我已经搜索了整个互联网,但没有任何运气找到解决方案。

【问题讨论】:

    标签: mysql linux character-encoding


    【解决方案1】:

    您可能有一个运行 UTF-8 的浏览器/SQL 客户端,而数据库数据是 Latin-1。

    在处理字符编码时,您必须确保从数据源到屏幕的所有步骤都使用相同的编码。这包括:

    • 发送到数据库的数据的编码
    • 数据库编码
    • 从数据库读取的文件/脚本的编码

    如果终点是网页:

    • HTTP 标头中设置的编码
    • 元标记中设置的编码
    • Web 浏览器编码设置(应自动设置为匹配 HTTP 标头/元标记)

    如果您真的不需要使用 latin1,则最好始终使用 UTF-8。 UTF-8 越来越成为无处不在的标准,大多数应用程序都使用它作为标准。

    【讨论】:

    • 正如我发布的:服务器字符集:latin1 Db 字符集:latin1 客户端字符集:latin1 Conn.字符集:latin1 现在我只是直接从 mysql clinet 插入和选择数据
    • @user2304731 你的 linux 控制台运行的是什么字符集? (locale 在命令提示符下)
    • LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE=" en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8 " LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=
    • 我现在在 mysql 中把它改成了 UTF8: mysql> show variables like 'char%'; |变量名 |价值 | +--------------------------+---------- ------+ | character_set_client | utf8 | |字符集连接 | utf8 | |字符集数据库 | utf8 | |字符集文件系统 |二进制 | |字符集结果 | utf8 | | character_set_server | utf8 |字符集系统 | utf8 |
    • 我发现了问题。我将所有内容都更改为utf8,但仍然无法正常工作。然后我发现Putty被设置为latin1。我将它更改为 utf8,现在它就像一个魅力。谢谢
    猜你喜欢
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 2018-11-14
    • 2012-03-29
    • 2014-06-10
    • 1970-01-01
    相关资源
    最近更新 更多