簡體   English   中英

utf-8字符集在php文件中不起作用

[英]utf-8 character set not working in php file

我試圖在我的數據庫中插入漢語/漢語字符,但我只得到了???? 當我做。 iv在線查看大量信息,但沒有解決方案。 當我在數據庫中運行帶有字符漢語/漢語的插入查詢時,它可以工作,所以我知道我的數據庫已針對utf8進行了設置...這是我在PHP文件中所做的事情……這將是任何幫助。不勝感激。

<?php
include 'config.php';  
header('Content-Type:text/html; charset=UTF-8');
mysqli_query("SET NAMES utf8");
mysqli_set_charset('utf8');


// check for required fields
if (isset($_POST['name'])) {
$name = mysqli_real_escape_string($link, $_POST['name']);

$result = mysqli_query($link, "INSERT INTO scores(`id` , `name`)VALUES(NULL, '$name'");

您需要確保數據庫以UTF-8模式運行。 您需要在表本身上執行此操作。 您說過您插入了字符串,但是是否檢查了一下是否可以讀出來? 正如我在下面的評論中所指出的那樣,您應該確定要連接到啟用了UTF-8的MySQL。 在下面的答案中有更多信息:

如何使MySQL正確處理UTF-8

此外,請確保PHP文件本身以UTF-8格式保存。 最后但並非最不重要的一點是,確保將HTML頁面正確設置為使用utf-8:

<meta charset =“ utf-8”>與<meta http-equiv =“ Content-Type”>

這是我所依賴的舊備忘單。 請記住,某些信息已過時

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

//僅適用於舊版MySQL_query

mysql_set_charset('utf8',$con);

//僅適用於MySQLi

$mysqli->set_charset("utf8")

還要簽出: http : //tympanus.net/codrops/2009/08/31/solving-php-mysql-utf-8-issues/

PHP過去並不是本地UTF-8友好的,您必須依靠下面的輔助功能。 我敢肯定,左側的所有功能已經成為UTF-8友好型產品已有幾年了。

mail()                -> mb_send_mail()
strlen()              -> mb_strlen()   
strpos()              -> mb_strpos()
strrpos()             -> mb_strrpos()
substr()              -> mb_substr()
strtolower()          -> mb_strtolower()
strtoupper()          -> mb_strtoupper()
substr_count()        -> mb_substr_count()
htmlentities($var)    -> htmlentities($var, ENT_QUOTES, 'UTF-8')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM