Php 本地服务器字符编码

Php 本地服务器字符编码,php,encoding,character-encoding,wamp,localserver,Php,Encoding,Character Encoding,Wamp,Localserver,我需要学好所有这些编码的东西。因为这是我第三次把时间浪费在愚蠢的错误编码问题上。问题是: 我有一个简单的php文件 文件的格式为UTF-8 如果我运行本地服务器,它会使ı=>ı和ö=>Ãœ 如果我将扩展名重命名为HTML,它就可以正常工作,所以问题肯定是本地服务器 为了纠正这个问题,我做了以下工作 我读过,而且 仔细检查了文件编码,它是UTF-8 添加了元标记 在php标签中添加了标题:标题(“内容类型:text/html;字符集:UTF-8”) 在php标签mb_internal_enc

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

  • 文件的格式为UTF-8
  • 如果我运行本地服务器,它会使
    ı=>ı
    ö=>Ãœ
  • 如果我将扩展名重命名为HTML,它就可以正常工作,所以问题肯定是本地服务器
为了纠正这个问题,我做了以下工作

  • 我读过,而且
  • 仔细检查了文件编码,它是UTF-8
  • 添加了元标记
  • 在php标签中添加了标题:
    标题(“内容类型:text/html;字符集:UTF-8”)
  • 在php标签
    mb_internal_encoding('UTF-8')中添加了内部编码
  • 更正了php.ini文件中的行
    default\u charset=UTF-8
  • 在httpd.conf文件中添加了以下内容:
    AddDefaultCharset utf-8
  • 一切都是硬编码的,所以我不使用数据库,它与mysql编码无关
  • 我使用的是WAMP,机器是Windows7英语。我已经筋疲力尽了,所以我真的需要帮助。

    谢谢。

    检查文档编码是否为不带BOM的UTF-8

    如果不起作用,请尝试
    utf8\u encode()和utf8\u 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>";    
     } 
    
    $text=“要传递的奇怪字符串,可能包含一些ø、æ、å字符。”;
    foreach(mb_list_encodings()作为$chr){
    echo mb_convert_编码($text,'UTF-8',$chr)。“:“$chr.”
    ”; }
    最后我发现了问题。我写

    header("Content-type:text/html; charset: UTF-8"); 
    
    内容类型之后
    ,我们需要把
    放在字符集之后,我们需要把等号
    =
    放在字符集之后,这让我非常沮丧。所以

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

    解决了这个问题

    关于收到的HTTP头,您的浏览器告诉您什么?在没有验证这一努力是否真的改变了某些东西的情况下,试图正确设置它们是无用的。哇,我在这里发现了一些东西。它说
    接受字符集:ISO-8859-1,utf-8;q=0.7,*;请求头中的q=0.3
    内容类型:text/html;字符集:UTF-8;响应标题中的字符集=iso-8859-9
    。我如何纠正这个问题?问题出在哪里?请求头实际上并不重要。响应标题肯定是错误的。如果你纠正它,事情可能会更好。据我所知,
    utf8\u encode()和utf8\u decode()
    是用来转换字符串的。但这是整个文档,而不是几个字符串。是的,它没有BOM.Netbeans和Notepad++,但正如Sven在上面的评论中所说,这是因为响应头。我在寻找问题。我认为你的问题不是字符错误,而是编码错误