簡體   English   中英

htmlentities 返回空字符串

[英]htmlentities returning empty string

以下代碼輸出一個空字符串。 原因是 $text 中的“ó”,但為什么呢? 那么 utf-8 編碼的字符是什么?

使用iso-8859-1時問題解決了,但是我需要使用utf-8,那我做錯了什么?

<!doctype html>
<head>
  <meta charset="utf-8">
</head>

<body>
<?
$text = 'Hola ó Hola';
$text = htmlentities($text,ENT_QUOTES,'utf-8');
echo $text;
?>
</body>
</html>

我有一個類似的問題,並使用標志ENT_SUBSTITUTE來防止空字符串。 它仍然沒有編碼,我不能依賴文件是UTF-8,所以我只在字符串上轉換編碼:

$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");

如果源文件包含字符串,請確保將其保存為UTf-8。 否則,確保提供字符串的任何內容都將其提供為UTF-8。

  1. 打開代碼編輯器(例如notepad ++或其他)。
  2. 單擊New > Save As..輸入文件名(空白一會兒),然后在類型中選擇PHP Hypertext ...
  3. 現在復制原始文件的所有內容並輸入此新文件。
  4. 點擊保存並嘗試。

只是為可能與我有類似問題的其他人發表評論。 $var 包含特殊字符。 這個 …

<?= htmlentities($var) ?>

... 給了我一個空的 output,而 ...

<?php echo htmlentities($var); ?>

……工作得很好。 與 htmlspecialchars 相同。 以前從未遇到過這種情況,因為我通常不會那樣使用它,但在這里我只是在測試一些東西。

暫無
暫無

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

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