我的mysql列中的重音字符的uft8_Encode或utf8_decode

时间:2014-03-31 12:40:37

标签: php mysql

我在我的mysql数据库中获得了一些记录,有些记录在他们的文本中加了字符。

例如:

"PONTO : 09867, TABULETA : 08112, POSIÇÃO : 1 , MOTIVO : DIVULGACAO FADE/FAL"

由于我必须打破这个字符串,我使用它:

  

$ var = explode(“,”,“PONTO:09867,TABULETA:08112,POSIÇOO:1,   MOTIVO:DIVULGACAO FADE / FAL“

我试过这个:

$x = utf8_encode($var[2]); - 重音字符是

但它一直让我这样:

POSIÃÂÃÂO : 2

或者

POSI?O : 2

我也尝试过解码,但仍然没有成功。有没有解决方案?

2 个答案:

答案 0 :(得分:2)

将连接编码设置为UTF-8:

SET NAMES UTF8;

另请参阅 set charset

<强>更新

事实证明这是一个php问题,所以可以看看 Character sets

答案 1 :(得分:1)

如果我理解正确,查询结果还可以,explode会将结果剪切到错误的位置,那是因为explode不是多字节功能。您必须使用preg_split

执行此操作
$var= preg_split("/[\,]+/", "PONTO : 09867, TABULETA : 08112, POSIÇÃO : 1 , MOTIVO : DIVULGACAO FADE/FAL");

我们可以看到它正常工作: http://screencast.com/t/hW7Bo9vB