如何从windows-1257转换为utf-8(mysql)

如何从windows-1257转换为utf-8(mysql),mysql,encoding,utf-8,character-encoding,Mysql,Encoding,Utf 8,Character Encoding,我正在寻找一个编码问题的帮助,我已经挣扎了几天了 我有一个数据库,有“拉丁语-瑞典语-ci”的排序规则。当我查看单个条目时,它会显示一个混乱的文本 grieþos informçs 应该是 griežos informēs 好吧,那么。。。我尝试用php脚本将文本输出到浏览器并设置 <meta http-equiv="Content-Type" content="text/html; charset=windows-1257" /> 现在。。。它正确地显示数据(“griež

我正在寻找一个编码问题的帮助,我已经挣扎了几天了

我有一个数据库,有“拉丁语-瑞典语-ci”的排序规则。当我查看单个条目时,它会显示一个混乱的文本

grieþos informçs
应该是

griežos informēs
好吧,那么。。。我尝试用php脚本将文本输出到浏览器并设置

<meta http-equiv="Content-Type" content="text/html; charset=windows-1257" />

现在。。。它正确地显示数据(“griežos informēs”)。我需要做的是将这些数据转换成UTF-8,这样我就可以使用

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

并正确显示所有内容

我尝试使用Notepad2创建一个编码为windows-1257的文件,然后从数据库复制文本并保存它。。。。同样的问题

甚至尝试在该数据库中使用utf-8排序规则创建一个表,并在其中插入数据。。。没有运气-只是表演?特殊字符的位置

任何帮助都将不胜感激


谢谢

打开数据库连接后立即使用此查询,以便在每次页面加载时运行一次:

    mysql_query('SET NAMES `utf8`');

打开数据库连接后立即使用此查询,以便在每次页面加载时运行一次:

    mysql_query('SET NAMES `utf8`');
(test是列名)

这将使您获得正确字符集中的行。您应该使用UTF8创建一个新表,然后
选择从旧表到新表的转换(..)

您可能还希望将旧表的字符集更改为cp1257_general_ci,而不是latin1_swedish_ci

为了不丢失数据,首先将列的数据类型更改为
blob
,然后使用cp1257_general_ci将其第二次更改为varchar,最后第三次更改为utf8_unicode_ci(我建议先备份,以防万一)

(test是列名)

这将使您获得正确字符集中的行。您应该使用UTF8创建一个新表,然后
选择从旧表到新表的转换(..)

您可能还希望将旧表的字符集更改为cp1257_general_ci,而不是latin1_swedish_ci


为了不丢失数据,首先将列的数据类型更改为
blob
,然后使用cp1257_general_ci将其第二次更改为varchar,最后第三次更改为utf8_unicode_ci(我建议先备份,以防万一)

这对他没有帮助,因为列的定义字符集与实际数据的字符集不匹配,所以MySQL无法将其转换为utf8。这对他没有帮助,因为列的定义字符集与实际数据的字符集不匹配,所以MySQL无法将其转换为utf8。不,我是第二次这么说的:(对不起,我更新了我的答案。不,我是第二次这么说的:(对不起,我更新了我的答案。