[英]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! 谢谢!
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.