簡體   English   中英

PHP查詢不使用UTF-8字符集

[英]php query not using UTF-8 charset

我從帖子的內容中獲取了URL和標題,但標題似乎不再是UTF-8,並且在回顯結果時包括一些時髦的字符,例如“”。 知道為什么沒有使用正確的字符集嗎? 我的標題確實使用了正確的元數據。

我在這里嘗試了一些解決方案,但似乎都沒有用,所以我想在下面添加我的代碼-以防萬一我丟失了一些東西。

$servername = "localhost";
$database = "xxxx";
$username = "xxxxx";
$password = "xxxx";
$conn = mysqli_connect($servername, $username, $password, $database);


$post_id = 228;

$content_post = get_post($post_id);
$content = $content_post->post_content;
$doc = new DOMDocument();
$doc->loadHTML('<?xml encoding="utf-8" ?>' . $content);

$links = $doc->getElementsByTagName('a');


$counter = 0;
foreach ($links as $link){

$href = $link->getAttribute('href');
$avoid  = array('.jpg', '.png', '.gif', '.jpeg');

if ($href == str_replace($avoid, '', $href)) {

$title = $link->nodeValue;
$title = html_entity_decode($title, ENT_NOQUOTES, 'UTF-8');



$sql = "INSERT INTO wp_urls_download (title, url) VALUES ('$title', '$href')";
if (mysqli_query($conn, $sql)) {
$counter++;
echo "Entry" . $counter . ": $title" . "<br>";

} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

}

}

更新了Echo字符串-最初上傳代碼后更改了此字符串。 我已經在其他帖子中嘗試過解決方案,但沒有成功。

您是否嘗試在連接上設置utf8字符集?

$conn->set_charset('utf8');

有關更多信息: http : //php.net/manual/en/mysqli.set-charset.php

看來您具有“雙重編碼”。 你所期望的是

Transverse Abdominis (TVA)

但是,括號前的空間是一個特殊的空間,該空間可能來自Microsoft Word,然后兩次轉換為utf8。 以十六進制表示: A0 > c2a0 > c382c2a0

是的,指向“ utf8 all through through”的鏈接最終將提供此修復程序,但我認為您需要更多幫助。

A0從latin1轉換為utf8,然后將這些字節視為latin1,然后重復轉換。

該連接通過mysqli_obj->set_charset('utf8') (或類似方法)提供客戶端的編碼。

然后,表中的列應為CHARACTER SET utf8mb4 (或utf8)。 使用SHOW CREATE TABLE驗證。 (當前可能是latin1。)

HTML應該以<meta charset=UTF-8>開頭。

UTF-8字符有問題; 我看到的不是我存儲的

暫無
暫無

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

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