2

我需要好好学习所有这些编码的东西。因为这是我第三次在愚蠢的错误编码问题上浪费时间。这是问题所在:
我有一个简单的 php 文件。

  • 文件格式为 UTF-8
  • 如果我运行我的本地服务器,它会生成ı => ıö => Ãœ
  • 如果我将扩展名重命名为 HTML,它可以完美地工作,所以问题出在本地服务器上。

为了纠正这个问题,我做了以下

  1. 我读过这个这个这个
  2. 仔细检查文件编码,它是 UTF-8
  3. 添加了元标记<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. 在 php 标签中添加了标题:header("Content-type:text/html; charset: UTF-8");
  5. 在 php 标签内添加了内部编码mb_internal_encoding('UTF-8');
  6. 更正了php.ini文件中的行default_charset = UTF-8
  7. 在 httpd.conf 文件中添加以下内容:AddDefaultCharset utf-8
  8. 一切都是硬编码的,所以我不使用数据库,它与mysql编码无关

我正在使用 WAMP,机器是 Windows 7 英语。我完全筋疲力尽,因此,我真的需要帮助。
谢谢。

4

2 回答 2

0

最后我发现了问题。我写

header("Content-type:text/html; charset: UTF-8"); 

之后Content-Type,我们需要放:,但是在 Charset 之后我们需要放等号=,这对我来说非常令人沮丧。所以,

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

解决问题。

于 2013-03-11T21:35:22.173 回答
0

检查文档编码是否为没有 BOM 的 UTF-8

如果不起作用,请尝试utf8_encode() and utf8_decode()

编辑

$text = "A strange string to pass, maybe with some ø, æ, å characters."; 

foreach(mb_list_encodings() as $chr){ 
        echo mb_convert_encoding($text, 'UTF-8', $chr)." : ".$chr."<br>";    
 } 
于 2013-03-11T21:07:42.837 回答