[英]How to use other languages in PHP echo or print
我在hostinger.in中創建了一個帳戶並創建了一個將從數據庫表中獲取內容的php。 人們說我的問題與這個問題重復。
我試過這個問題,你說的是重復的東西
他們提供的是在數據庫的所有表和文本列上指定utf8mb4字符集 。 但我的問題在這里有所不同。 我已經在TABLE中指定了我的編碼。 但是,當在php中打印時,它沒有正確顯示結果。
他們提供的另一件事是使用下面的代碼
$mysqli->set_charset('utf8mb4'); // object oriented style
mysqli_set_charset($link, 'utf8mb4');
我也用過它,但我沒有得到輸出。
這是我的db.php
<?php
$con=mysqli_connect("HOST","mysql","mypass","u558167714_mydb");
if(!$con)
{
echo "Connection error... ".mysqli_connect_error();
}
else
{
echo "Connection Successful..."
}
?>
還有我的index.php
<?php
require_once 'db.php';
$query = "SELECT * FROM quotes LIMIT 1";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)){
print(json_encode($row['quote']));
}
?>
我的數據庫中的實際內容是Thisதமிழ்
但我得到的是“這是\\ u0ba4 \\ u0bae \\ u0bbf \\ u0bb4 \\ u0bcd” 。
這是我的網址。
我看到很多類似於我的問題,並嘗試按照命令,
mysqli_set_charset($this->mysqli,"utf8"); or
mysqli_set_charset($conn,"utf8");
但我沒有得到正確的輸出。
我怎樣才能真正設置我的字符集來獲取輸出。
使用和不使用數據庫調用進行測試。
<?php
$data = array(
'name' => 'தமிழ'
);
header('Content-Type: application/json; charset=UTF-8');
print json_encode($data, JSON_UNESCAPED_UNICODE);
編碼完全正確! 不要試圖刪除它。
JSON用於Javascript,Javascript知道如何處理由\\x...
轉義的字符。 如果你這樣做:
<script>
var quote = <?php echo json_encode($quote); ?>;
document.write(quote);
</script>
您將看到解碼已正確完成。
您可以使用http://se2.php.net/manual/en/json.constants.php中的常量作為選項將其關閉(我認為它是JSON_UNESCAPED_UNICODE
) - 但不建議這樣做 。
如果您不使用Javascript和/或HTML,請不要使用json_encode()。
要超級正確,你應該使用:
<?php
// code to fetch data...
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);
為什么你甚至調用json_encode()?
數據庫顯然有一個有效的字符串,然后你將其編碼為JSON,是的...將非ascii字符轉換為\\uXXXX
轉義序列。 如果你的消費者是Javascript代碼(或其他說JSON
的東西),那就是你要做的事情。 您只是在瀏覽器中查看它,因此您應該將其輸出為HTML (純文本恰好是其子集)。
只需: print $row['quote'];
或者更好,所以你習慣了安全:
print htmlentities($row['quote'], ENT_QUOTES, 'UTF-8');
也許這解決了你的問題,我在這里測試:
在HTML中:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
用PHP
header('Content-Type:text/html; charset=UTF-8');
來自鏈接
如果給出錯誤,請嘗試:utf8_encode和utf8_decode。
例如:echo utf8_encode($ string);
更新例如:index.php文件
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<?php
require_once 'db.php';
$query = "SELECT * FROM quotes LIMIT 1";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)){
print(json_encode($row['quote']));
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.