我有一个德语的.csv文件(所以有characters,ö,ü,ß),我把它上传到sql server; 如果我去phpmyadmin并查看表格,这些字母会正确显示为ä,ö,ü,ß; 然而,当我从桌子上拿到这样一个带有这样一个字母的条目时,它不再起作用了,这些字母只显示了一个问号; 上传和下载的脚本是标准的,所以我使用fopen打开csv,然后用值填充数据库; 从数据库中获取它也是标准的,即:
$sql = "SELECT * FROM table WHERE id=$id";
$query = mysqli_query($db, $sql);
while ($row = mysqli_fetch_assoc($query)) {
echo $row['name']);
}
我猜这是字符编码的问题,但我不知道如何解决它;有人有想法吗?
我已经尝试过使用:
$name[$i]= str_ireplace ( 'ß' , 'ß' , $name[$i] );
在将其上传到数据库(html中的ß代码)之前,但是,如果我上传并查看phpmyadmin,ß不会被覆盖并仍然在sql数据库中写成ß 如果我使用命令:
$name[$i]= str_ireplace ( 'a' , 'ß' , $name[$i] );
作为一个例子,它可以工作,所有的都被ß取代,并且在phpmyadmin中也会显示为ß; 但是使用ß它不起作用;有人有想法吗? :) 非常感谢你!! :)
我不知道如何包含:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
在我的脚本中,所以我用:
echo'';
这是对的吗?但不幸的是,它没有奏效;但是我尝试了这个:
$test = utf8_encode ( $row['name'] );
echo $test;
它有效;但如果我得到其他专栏,我需要一直写:
$test1 = utf8_encode ( $row['name1'] );
$test2 = utf8_encode ( $row['name2'] );
等。是否有可能永久地设置它而不仅仅是为了一件事?
答案 0 :(得分:0)
3个步骤:
编辑:第二个虽然这可能不是它,但我留下它,因为它是数据库和特殊字符的常见错误,值得一试