<p>Does anyone have any tips or gotcha moments to look out for when trying to migrate MySQL tables from the the default case-insenstive swedish or ascii charsets to utf-8? Some of the projects that I'm involved in are striving for better internationalization and the database is going to be a significant part of this change.</p>

<p>Before we look to alter the database, we are going to convert each site to use UTF-8 character encoding (from least critical to most) to help ensure all input/output is using the same character set.</p>

<p>Thanks for any help</p>

[{'answer_id': 47011, 'author': 'Mike H', 'author_id': 4563, 'author_profile': 'https://Stackoverflow.com/users/4563', 'pm_score': 1, 'selected': False, 'text': '<p>I am going to be going over the following sites/articles to help find an answer.</p>\n\n<p><a href="http://www.joelonsoftware.com/articles/Unicode.html" rel="nofollow noreferrer">The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) - Joel on Software</a></p>\n\n<p><a href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" rel="nofollow noreferrer">UTF-8 And Unicode FAQ</a></p>\n\n<p><a href="http://www.hanselminutes.com/default.aspx?showID=135" rel="nofollow noreferrer">Hanselminutes episode "Sorting out Internationalization with Michael Kaplan"</a></p>\n\n<p>And I also just found a very on topic post by Derek Sivers @ O\'Reilly ONLamp Blog as I was writing this out. <a href="http://www.oreillynet.com/onlamp/blog/2006/01/turning_mysql_data_in_latin1_t.html" rel="nofollow noreferrer">Turning MySQL data in latin1 to utf8 utf-8</a></p>\n'}, {'answer_id': 47054, 'author': 'Harry', 'author_id': 4704, 'author_profile': 'https://Stackoverflow.com/users/4704', 'pm_score': 3, 'selected': True, 'text': "<p>Some hints:</p>\n\n<ul>\n<li>Your <code>CHAR</code> and <code>VARCHAR</code> columns will use up to 3 times more disk space.  (You probably won't get much disk space grow for Swedish words.)</li>\n<li>Use <code>SET NAMES utf8</code> before reading or writing to the database.  If you don't this then you will get partially garbled characters.</li>\n</ul>\n"}, {'answer_id': 47059, 'author': 'John Millikin', 'author_id': 3560, 'author_profile': 'https://Stackoverflow.com/users/3560', 'pm_score': 0, 'selected': False, 'text': "<blockquote>\n  <p>Your <code>CHAR</code> and <code>VARCHAR</code> columns will use up to 3 times more disk space.</p>\n</blockquote>\n\n<p>Only if they're stuffed full of latin-1 with ordinals > 128. Otherwise, the increased space use of UTF-8 is minimal.</p>\n"}, {'answer_id': 69075, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': "<p>The collations are not always favorable.  You'll get umlats collating to non umlatted versions which is not always correct.  Might want to go w/ utf8_bin, but then everything is case sensitive as well. </p>\n"}, {'answer_id': 72966, 'author': 'JBB', 'author_id': 12332, 'author_profile': 'https://Stackoverflow.com/users/12332', 'pm_score': 1, 'selected': False, 'text': "<p>Beware index length limitations. If a table is structured, say:</p>\n\n<p>a varchar(255)\nb varchar(255)\nkey ('a', 'b')</p>\n\n<p>You're going to go past the 1000 byte limit on key lengths. 255+255 is okay, but 255*3 + 255*3 isn't going to work.</p>\n"}]
['https://Stackoverflow.com/questions/47005', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/4563/']