2011-08-25 66 views
2

我们目前有大约30个使用latin1_sweedish_ci进行编码的表。我意识到虽然utf8_unicode_ci是一个更安全的编码使用,为此我想将所有这些表转换为。将所有mysql表从latin1_swedish_ci切换到utf8_unicode_ci时会产生影响吗?

我的问题是,

  1. 我可以转换所有这些表的到,而不会造成任何数据损坏utf8_unicode_ci。
  2. 如果瑞典人在这一点上一直工作良好,是否有这样做的理由呢?
  3. 在新创建的表上开始使用utf8_unicode_ci可以吗?
+0

[UTF-8通过所有方式]的可能重复(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) –

+1

该帖子不回答现有的问题表。所以我不明白这个帖子应该如何关闭。我没有从头开始的选择,这个帖子也没有回答这个问题。 – Metropolis

回答

1

我可以转换所有这些表的到,而不会造成任何数据损坏utf8_unicode_ci。

如果使用纯MySQL的工作(即您在使用表没有Web应用程序实际上),这很可能会被罚款。只要有可能,切换表归类就会转换数据(如果转换方向不一定相反,从UTF-8到latin1,因为UTF-8的范围要宽得多,并且有许多字符,latin1不能显示)。

如果一个或多个应用程序正在访问这些表,那么它们都将依赖于它们以及它们是否可以完全处理UTF-8数据。例如,许多PHP应用程序都不能。

+0

嘿佩克卡!感谢您的回应。如果我将应用程序脱机,以至于在转换所有应用程序时它不访问应用程序,该怎么办? – Metropolis

+0

@大都市没关系,问题(如果有的话)稍后再来。 UTF-8是一个多字节编码,每个字符占用1到3个字节。 Latin1是一个单字节编码,每个字符只占用一个字节。例如,PHP的本地字符串函数不是多字节安全的,所以稍后应用程序有可能会中断数据。像Python这样的其他语言有本地Unicode支持,这会导致更少的问题。这真的取决于你的应用程序。 –

+0

嗯.....所以如果我现在转换它们,数据会没事的....但是随着PHP在将来使用这些表格,它们会变得混乱起来?我希望我能正确理解你。 – Metropolis

相关问题