Php 从utf8\U unicode\U ci到shift jis的Mysql字符集解码
我尝试了许多方法将Php 从utf8\U unicode\U ci到shift jis的Mysql字符集解码,php,mysql,mysqli,character-encoding,mysql-error-1064,Php,Mysql,Mysqli,Character Encoding,Mysql Error 1064,我尝试了许多方法将utf8\u unicode\u ciMySQL列中的utf8\u unicode\u ci值转换为shift\u jis,但没有得到修复 原始列值位于shift_jis中,当使用新主机时,它得到了转换。现在的价值似乎是垃圾,但它在网站前端表现良好 表格列值为:EƒCƒhEƒŠƒO 而字符集是 我尝试过这种mb\u convert\u编码($str,“SJIS”,“UTF-8”);和许多其他编码,但没有得到转换。 有什么有价值的解决方案吗?首先,通过执行以下操作确定表中的内容
utf8\u unicode\u ci
MySQL列中的utf8\u unicode\u ci
值转换为shift\u jis
,但没有得到修复
原始列值位于shift_jis
中,当使用新主机时,它得到了转换。现在的价值似乎是垃圾,但它在网站前端表现良好
表格列值为:EƒCƒhEƒŠƒO
而字符集
是
我尝试过这种mb\u convert\u编码($str,“SJIS”,“UTF-8”);
和许多其他编码,但没有得到转换。
有什么有价值的解决方案吗?首先,通过执行以下操作确定表中的内容
SELECT col, HEX(col) ...
如果是utf8,则十六进制应该是3字节集,如片假名和平假名字符的E38XY。如果不是,则可能已经有SJIS。(或其他)
假设表列显示
col VARCHAR(...) ... CHARACTER SET utf8 -- (or utf8mb4)
然后,您可以通过执行以下操作获得要转换为SJIS的SELECT
mysqli_charset('sjis');
mysqli_query( ... )
相反,如果需要将表从utf8转换为sjis,请执行以下操作
ALTER TABLE tbl CONVERT TO CHARACTER SET sjis;
这将把tbl
中的所有列以及这些列中的所有数据转换为指定的字符集
不要使用mb.*
或其他转换函数;这只会增加混淆
EƒCƒhEƒƒƒƒƒƒƒƒO
如果解释为拉丁文1,则为十六进制8345834383838383836845838a8393834f
,如果解释为sjis(或cp932),则为ウインドEリング代码>--这是您所期望的吗
也就是说,EƒCƒhEƒŠƒO
是sjisウインドEリング
.Mojibake通常通过执行上面的mysqli\u字符集
来修复。首先,通过执行
SELECT col, HEX(col) ...
如果是utf8,则十六进制应该是3字节集,如片假名和平假名字符的E38XY。如果不是,则可能已经有SJIS。(或其他)
假设表列显示
col VARCHAR(...) ... CHARACTER SET utf8 -- (or utf8mb4)
然后,您可以通过执行以下操作获得要转换为SJIS的SELECT
mysqli_charset('sjis');
mysqli_query( ... )
相反,如果需要将表从utf8转换为sjis,请执行以下操作
ALTER TABLE tbl CONVERT TO CHARACTER SET sjis;
这将把tbl
中的所有列以及这些列中的所有数据转换为指定的字符集
不要使用mb.*
或其他转换函数;这只会增加混淆
EƒCƒhEƒƒƒƒƒƒƒƒO
如果解释为拉丁文1,则为十六进制8345834383838383836845838a8393834f
,如果解释为sjis(或cp932),则为ウインドEリング代码>--这是您所期望的吗
也就是说,EƒCƒhEƒŠƒO
是sjisウインドEリング代码>。Mojibake通常通过执行上面的mysqli\u字符集
来修复。ウインドEリング
是期望的结果,谢谢你的回答。但是这里有一个问题,一些行的内容混合在一起,比如Luster BangleƒVƒƒƒo[@oƒoƒ“ƒOƒè
这怎么可能转换它?如果表中的某些行是sjis,而某些行是utf8,那么“修复”是很棘手的。您是否有一个WHERE
子句来识别“错误”编码的行?我将尝试提出一个更新
来执行转换。很抱歉误解这是Luster BangleƒV”ƒƒƒo[@oƒoƒoƒ
columnname
的列行值。因此columnname
有一些值是EƒCƒ“hEƒŠƒo
,但有些是与英语单词混合的,如Luster Bangle Vƒo[@code>“ƒOƒè
。所以会有解决方案吗?显示诸如“char%”之类的变量;
ウインドEリング
是期望的结果,谢谢你的回答。但是这里有一个问题,一些行的内容混合在一起,比如Luster BangleƒVƒƒƒo[@oƒoƒ“ƒOƒè
这怎么可能转换它?如果表中的某些行是sjis,而某些行是utf8,那么“修复”是很棘手的。您是否有一个WHERE
子句来识别“错误”编码的行?我将尝试提出一个更新
来执行转换。很抱歉误解这是Luster BangleƒV”一个柱的行值为一个柱的值为一个柱的行值为一个柱的值为一个柱的值为一个柱的值为一个柱的值为一个柱的值为一个柱的值为一个柱的值为一个柱的代码名为一个柱的代码名为一个柱的代码名为一个柱的行值为一个柱的行值为一个柱的值为一个柱的code>code>名称名名名名名为。所以柱的名名为一个柱COCOCOCODE>COCOCODE>COCODE>名称名名名名为一个柱codecodecode>codecodecode>code>codecodecodecode>code>>