作为标题中的站点,我有重音字符编码问题。我在网上找到了几个解决方案,但它不起作用,或者我不知道如何使用。一开始:我在php-myssql库中收集所有数据,并使用json_encode函数将数据返回给应用程序。这就是它崩溃的地方。所有有重音字符的字段都替换为null。数据库要么是一个网站(我不能更改它),要么在windows-1252中编码,直接插入wampPHP为什么我找到了解决方案
$liste_amis = $bdd->query('SELECT * FROM lieux');
$nombre_amis=0;
while($myliste=$liste_amis->fetch()){
foreach($myliste as &$value)
{
$value = mb_convert_encoding($value, "UTF-8", "Windows-1252");
}
$output[]=array_map('utf8_encode', $myliste );
}
print(json_encode($output));
但它只适用于用wampPHP插入的数据,它看起来更像"discotA¨que"并且在Logcat中像这样"discoth''u00c3''u00a8que"
并且剩菜总是被赋予空
在我的java代码中,我使用BufferedReader
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8192);
StringBuilder sb = new StringBuilder();
String line = null;
int i = 0;
while ((line = reader.readLine()) != null) {
sb.append(line);
i++;
帮助
编辑:
最后它工作了,解决方案:
mysql_query ( "'utf8' SET NAMES" );
//--.......
while($myliste=$liste_amis->fetch()){
$output[]=array_map('utf8_encode', $myliste);
}
print(json_encode($output,JSON_UNESCAPED_UNICODE));
java:
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
储罐。
将代码重写为。。。
foreach($myliste as &$value)
{
$value = mb_convert_encoding($value, "UTF-8", "Windows-1252");
}
$output[]=array_map('utf8_encode', $myliste);
}
print(json_encode($output,JSON_UNESCAPED_UNICODE));