UTF-8问题,没有想法

opH*_*AME 6 php encoding utf-8

我的网页上有一些文档有一个奇怪的问题.

我的数据存储在MYSQL数据库中,UTF8编码.如果读取我的webbpage显示的值

Rezept:Gem semalanders(Gem selaibchen)

我需要ü/ü!

数据库中的内容是"Gemüse......"..

我的error_log中的原始数据如下所示

[title] => Rezept:Gemüsemalanders(Gemüselaibchen)

网页标题是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<!--[if IE]>
  <link rel="stylesheet" href="http://www.dev-twitter-gewitter.com/css//blueprint/ie.css" 
        type="text/css" media="screen, projection">
<![endif]-->

<meta name="text/html; charset=UTF-8" content="Content-Type" />
Run Code Online (Sandbox Code Playgroud)

Dan*_*ski 11

您必须设置网页的编码.

有三种方法可以设置编码:

  1. HTML/XHTML:使用HTTP标头:

    Content-Type: text/html; charset=UTF-8
    
    Run Code Online (Sandbox Code Playgroud)
  2. HTML:使用元元素:(也可以用于XHTML,但有些不同寻常)

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    Run Code Online (Sandbox Code Playgroud)
  3. 仅限XHTML:在前导码中设置编码:( 首选XHTML)

    <?xml version="1.0" encoding="UTF-8"?>
    
    Run Code Online (Sandbox Code Playgroud)

如果要首先验证问题:

首先使用浏览器手动更改编码.如果可行,您可以在HTML文件中进行设置.确保将手动编码重置为自动检测,否则它将在您的工作站上运行,但不会在用户的工作站上运行!

PHP专业:确保您的内部编码也设置为UTF-8!所有输出都转换为此编码.

您可以mb_internal_encoding在每个文件的顶部使用内部编码.

毕竟:如果您的代码实际上不是UTF-8编码的话,这一切都无济于事!如果是,请检查是否有任何可能破坏UTF-8编码的辅助函数.


Mic*_*sen 8

MySQL需要知道您希望输出为UTF-8 - 它可能被配置为以latin1发送,因此您的浏览器会看到无效的UTF-8字节序列并输出"非字符"字形.

打开MySQL连接后立即发送查询"SET NAMES utf8",或更改配置(如果可能).