瑞典字母MySQL和LAMP的问题

时间:2016-10-09 11:14:59

标签: php mysql

我一直在努力解决这个问题。我无法让它发挥作用。

在网址http://course.easec.se/problem.pdf上,我已整理了迄今为止所做的工作!

有什么建议吗?

<?php 
header('Content-Type: text/html; charset=ISO-8859-1');  //no changes
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "db_test4";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset("utf8");
echo "From PHP Script  ååååå\n";   //to see if there is problem when edit the script
$sql = "SELECT * FROM test_tbl";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

        echo "Kundid: " . $row["kund_id"]. " - Förnamn: " . $row["fnamn"]. " - Efternamn: " . $row["enamn"]. " - Adress:" . $row["adress1"] ."<br>";
    }
} else {
    echo "0 results";
}
$conn->close();   
?>

客户端:

Client

它现在有效,似乎是我的编辑器,当我尝试ANSI而不是UTF-8并将标题更改为!

enter image description here

3 个答案:

答案 0 :(得分:3)

直接在

之下

$conn = new mysqli($servername, $username, $password, $dbname);

添加

$conn->set_charset("utf8");

注意:此外,您还应确保HTML的字符集(在<head>标记中)设置为utf-8,例如<meta charset="utf-8">

答案 1 :(得分:0)

使用: header('Content-Type: text/html; charset=ISO-8859-1');

代替: header('Content-type: text/html; charset=utf-8');

  

不需要在while循环中使用,在打印任何内容之前使用页面顶部。

答案 2 :(得分:0)

我喜欢您在PDF中设置问题的方式,有点原始:-D。现在,您的问题的答案将是found here。尽可能多地阅读整个问题和尽可能多的答案。

  

然后作为最后的努力,我将编辑器更改为ANSI而不是UTF-8然后它可以工作!

由于这个问题,您的内部PHP脚本编码使用PHP Multibyte String进行Reaseach并将您的PHP代码设置为:

<?php
mb_internal_encoding('UTF-8'); //this is the important one! 
mb_http_output('UTF-8');
mb_http_input('UTF-8');

确保您的PHP代码在执行时也符合UTF-8标准。您还可以(或应该能够)在IDE编辑器中编辑设置以保存没有UTF-8 BOM(字节顺序标记)的PHP文件,这也将解决此问题并将其保存为UTF-8,这是其他服务可以理解的。

附加说明(我喜欢对MySQL UTF-8抱怨):

MySQL UTF-8 不是完整的UTF-8 。解决方案在上面的链接线程中提供,一些常规补充:

  • 1)您希望始终使用UTF8mb4(理想情况下为_unicode_ci)。

  • 2)在PDF的最终屏幕截图中,您应该设置尽可能多的utf8mb4_unicode_ci

  • 3)设置连接字符集至关重要,即使服务器和客户端都使用utf8mb4如果连接只有utf-8它会带来所有内容否则降到那个低点。

  • 4)推荐:

    header('Content-Type: text/html; charset=UTF-8');  //UTF-8
    

只有MySQL UTF-8被破坏,其他的实现不是并且完全可以使用,并且通常被视为HTML标准。