简体   繁体   English

HTML字符编码以接受UTF-8

[英]HTML Character Encoding to accept UTF-8

I'm working on a website for a client who's located in Brazil. 我正在为一个位于巴西的客户创建一个网站。 A section of his website shows feedback/reviews from users. 他网站的一部分显示了用户的反馈/评论。

Here is an example: 这是一个例子:

Correct Version: 正确版本:

"Três aprovados em menos de dois minutos!" “非常重要!”

When I output to the user, this is whats showing: 当我输出给用户时,这表明:

Incorrect Version: 版本不正确:

"Três aprovados em menos de dois minutos!" “Trésaprovados em menos de dois minutos!”

I'm saving these reviews to a mySQL database (Hostgator) and I've set my database collation to "utf8_unicode_ci". 我将这些评论保存到mySQL数据库(Hostgator)中,并将数据库排序规则设置为“ utf8_unicode_ci”。

At the top of my HTML decument, I've declared this: 在HTML修饰的顶部,我声明了这一点:

 <!DOCTYPE html> <html lang="pt-BR" class="fixed"> <head> <title>@yield("title")</title> <!-- Basic --> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <!-- Rest of the page is here --> </body> </html> 

I'm using Laravel 5 to grab my data from the DB and I display it like so: 我正在使用Laravel 5从数据库中获取我的数据,并显示如下:

{{ mb_convert_encoding($feedback->message, "UTF-8") }}

Funny thing is, if I use the code above on my localhost, the correct "review" is shown. 有趣的是,如果我在本地主机上使用上面的代码,则会显示正确的“审阅”。 But once I upload it to hostgator, the "review" is not shown correctly. 但是,一旦我将其上传到hostgator,“评论”就不会正确显示。

If I change it to "{{ mb_convert_encoding($feedback->message, "auto") }}", the correct "review" is shown on uploaded page but on my localhost, the wrong "review" is shown. 如果我将其更改为“ {{mb_convert_encoding($ feedback-> message,“ auto”)}}“),则正确的“审阅”会显示在上载页面上,但在我的本地主机上会显示错误的“审阅”。

I've never ran into this issue before! 我从来没有遇到过这个问题! When I get phpinfo on the clients hostgator page, it shows that "default_charset" is set to "null" 当我在客户端hostgator页面上获得phpinfo时,它表明“ default_charset”设置为“ null”

Could that be the issue? 这可能是问题吗?

Thanks! 谢谢!

UPDATE UPDATE

I've fixed the "default_charset" to "UTF-8" and I still have the same issue. 我已经将“ default_charset”修复为“ UTF-8”,但仍然存在相同的问题。

Here's the response header 这是响应头

Cache-Control:no-cache
Connection:Keep-Alive
Content-Type:text/html; charset=UTF-8
Date:Fri, 18 Sep 2015 19:36:29 GMT
Keep-Alive:timeout=5, max=75
Server:Apache
Set-Cookie:XSRF-TOKEN=[hidden]; expires=Fri, 18-Sep-2015 21:36:29 GMT; Max-Age=7200; path=/
Set-Cookie:laravel_session=[hidden]; expires=Fri, 18-Sep-2015 21:36:29 GMT; Max-Age=7200; path=/; httponly
Transfer-Encoding:chunked

Heres my Database Configuration: 这是我的数据库配置:

PDO::FETCH_CLASS,

    /*
    |--------------------------------------------------------------------------
    | Default Database Connection Name
    |--------------------------------------------------------------------------
    |
    | Here you may specify which of the database connections below you wish
    | to use as your default connection for all database work. Of course
    | you may use many connections at once using the Database library.
    |
    */

    'default' => env('DB_CONNECTION', 'mysql'),

    /*
    |--------------------------------------------------------------------------
    | Database Connections
    |--------------------------------------------------------------------------
    |
    | Here are each of the database connections setup for your application.
    | Of course, examples of configuring each database platform that is
    | supported by Laravel is shown below to make development simple.
    |
    |
    | All database work in Laravel is done through the PHP PDO facilities
    | so make sure you have the driver for your particular database of
    | choice installed on your machine before you begin development.
    |
    */

    'connections' => [

        'sqlite' => [
            'driver'   => 'sqlite',
            'database' => storage_path('database.sqlite'),
            'prefix'   => '',
        ],

        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

        'pgsql' => [
            'driver'   => 'pgsql',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
            'schema'   => 'public',
        ],

        'sqlsrv' => [
            'driver'   => 'sqlsrv',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
        ],

    ],

    /*
    |--------------------------------------------------------------------------
    | Migration Repository Table
    |--------------------------------------------------------------------------
    |
    | This table keeps track of all the migrations that have already run for
    | your application. Using this information, we can determine which of
    | the migrations on disk haven't actually been run in the database.
    |
    */

    'migrations' => 'migrations',

    /*
    |--------------------------------------------------------------------------
    | Redis Databases
    |--------------------------------------------------------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer set of commands than a typical key-value systems
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */

    'redis' => [

        'cluster' => false,

        'default' => [
            'host'     => '127.0.0.1',
            'port'     => 6379,
            'database' => 0,
        ],

    ],

];

Try this mysqli_set_charset($link, "utf8"); 试试这个mysqli_set_charset($link, "utf8"); and put this on the header <meta charset="UTF-8"> 并将其放在标题<meta charset="UTF-8">

I was having the same problem with spanish characters not showing properly using hostgator hosting and I solved by changing the character set to UTF-8 of the document itself on the text editor, PSPad on my case. 我在使用hostgator主机时无法正确显示西班牙字符时遇到了同样的问题,我通过在文本编辑器(我的情况下为PSPad)上将字符集更改为文档本身的UTF-8来解决了问题。 Check the image: 检查图像:

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM