1

我正在尝试使用 MySQL 国际化 dcm4chee(一个基于 Java 的开源医学影像存储系统),并且有很多问题。

这是我到目前为止所知道的 1. 我需要在 MySQL 中将字符集从 latin1 更改为 utf8 (以支持所有国际字符) 2. 我很确定我想将排序规则设置为 utf8_unicode_ci

以下是我需要知道的 1. 我应该如何/何时做这些事情?一个。可以对现有表进行这些更改吗?湾。如果是这样,我该怎么做?C。在数据库的整个生命周期中,这些更改是否只需要进行一次?d。所做的更改会仅影响未来的条目还是所有条目?2. 如何更改 dcm4chee 未来安装的默认值以使用 utf8?3. 从我的研究看来,改变字符集和排序规则以使用足够宽的字符集 (utf8) 是我需要做的所有事情来国际化 MySQL。这是真的?如果没有,我还需要做什么?

谢谢,对此的任何帮助将不胜感激

4

1 回答 1

1

我不是专家,但过去我不得不更改数据库上的字符集/排序规则。

  1. a) 您可以随时更改 MySQL 表。在进行更改之前备份您的数据库。

    b) 来自每个开发人员每天面临的挑战的SQL 查询:

    ALTER TABLE db_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    c) 应该只需要更改一次。如果创建新表,请注意确保使用正确的字符集创建它们。

    d) 更改将影响未来/现有条目(但如果由于先前的字符集,旧表条目是垃圾字符而不是预期的 UTF8 字符,则此更改不会神奇地将它们更改为预期状态)。

  2. 对不起,我从未使用过 dcm4chee。如果数据库是预先构建的并与安装捆绑在一起,那么您将不得不更改捆绑的数据库。如果数据库是在安装软件时构建的,您必须找到源代码的这一部分并更改“CREATE TABLE...”SQL 查询,以便它使用适当的字符集创建表。在每个源文件中搜索“CREATE TABLE”可能是个好主意,以确保没有遗漏。

  3. 在我有限的 MySQL 经验中,更改字符集/排序规则足以使数据库国际化。我只有中文+英文数据库的经验,虽然每次更改字符集/排序规则后我都没有遇到任何问题。

于 2009-02-15T21:05:04.643 回答