我的 SQL 服务器运行在 linode.com 托管的 Debian Linux 上,我的部分数据中包含希伯来字符。
我正在通过 Windows 7 上的 putty ssh 连接到服务器。当我运行 sql 管理控制台(mysql)并执行选择查询时,所有希伯来语字符都显示为“?”。
我甚至不确定问题出在哪里,但我猜测是 mysql 控制台或者 putty 丢失了希伯来语。
数据本身没有问题(我知道这一点是因为它也可以通过网页访问,并且显示正常)。
关于我应该做什么才能在这种情况下启用希伯来语,有什么想法吗?
谢谢。
答案1
字符编码有一点变化,可能是您的数据(毕竟都是二进制的)。
您应该首先检查数据库的编码和表的单独编码。编码指的是内部存储……一个很好的例子可能是您正在存储,ISO-8859-1
因此数据库只需要ISO-8859-1
,但如果某些数据是希伯来语,这些字符就不valid
在ISO-8859-1
……但如果客户端输入和输出数据时使用的是ISO-8859-8
(希伯来语),它看起来大部分情况下都是可行的。
这里是 MySQL 关于该主题的指南。
我建议(如果可能)您使用 UTF-8,原因有很多,但请不要盲目更改数据库编码,因为这不会重新编码数据,而只是通知 MySQL 应将其视为 UTF8。(如果源是 ISO-8859-1 或 ISO-8859-8,这将损坏您的数据。这里是另一本关于字符编码的入门书,你最好仔细阅读一遍。“任何软件工程师都应该了解的关于 Unicode 的最低限度的知识”
此外,您的终端(您的 bash 会话)、终端仿真器(putty)和 db 控制台(mysql)都必须知道它们正在处理的编码...最好告诉它们 UTF-8...然后使用 UTF-8 数据。