我正在尝试用MySQL将dcm4chee(基于Java的开源医疗成像存储系统)国际化,并且有很多问题。
这是我目前所知道的 1.我需要在MySQL中将字符集从latin1更改为utf8(以支持所有国际字符) 2.我很确定我想将整理设置为utf8_unicode_ci
这是我需要知道的 1.我应该怎样/何时做这些事情? 一个。可以对现有表格进行这些更改吗? 湾如果是这样我该怎么办? C。这些更改是否只需要在数据库的整个生命周期内进行一次? d。变更是否会影响未来的条目或所有条目? 2.如何更改dcm4chee的未来安装默认值以使用utf8? 3.从我的研究看来,改变字符集和排序以使用足够宽的字符集(utf8)似乎是我需要做的国际化MySQL。这是真的?如果没有,我还需要做什么?
谢谢,对此的任何帮助将不胜感激
答案 0 :(得分:1)
我不是专家,但我过去不得不改变数据库中的字符集/校对。
a)您可以随时更改MySQL表。在进行更改之前备份数据库。
b)来自Challenges that each developer faces every day的SQL查询:
ALTER TABLE db_table CONVERT TO 字符集utf8 COLLATE utf8_general_ci;
c)只需要更换一次。如果要创建新表,请注意确保使用正确的字符集创建它们。
d)更改将影响未来/现有条目(但是,如果由于前一个字符集,较旧的表条目是垃圾字符而不是预期的UTF8字符,则此更改不会神奇地将它们更改为其预期状态)。
对不起,我从未使用过dcm4chee。如果数据库是预先构建的并与安装捆绑在一起,那么您将不得不更改捆绑的数据库。如果在安装软件时构建了db,则必须找到源代码的这一部分并更改“CREATE TABLE ...”SQL查询,以便使用适当的字符集创建表。在每个源文件中搜索“CREATE TABLE”可能是一个好主意,确保没有错过。
在我有限的MySQL经验中,更改charset / collation足以使db国际化。我只有中文+英文数据库的经验,但在每种情况下我都没有遇到更改字符集/校对后的问题。