2013-07-25 79 views
2

我是PHP新手。當我用ENT_HTML5標誌嘗試htmlspecialchars()時,它會起作用,但所有非英語單詞都將被刪除。我試過了:PHP:htmlspecialchars()和非英文語言

<?php 

$sometext = $_GET['query']; 
$sometext = htmlspecialchars($sometext, ENT_HTML5, 'UTF-8'); 
echo $sometext; 

?> 

例如,我試着查詢「Hello world,Приветмир!」 (英文,俄文)。但它讓我回到了「Hello world,!」。我沒有訪問php.ini。也許有問題?我怎麼解決這個問題?

謝謝@deceze,我找到了解決辦法:

<?php 

$sometext = $_GET['query']; 
$sometext = htmlspecialchars($sometext, ENT_HTML5, 'Windows-1251'); 
echo $sometext; 

?> 
+0

[UTF-8一路通過]的可能重複(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) – deceze

回答

4

的問題是,你告訴 PHP,你的字符串是UTF-8編碼的,當它顯然不是。所以PHP不能正確解釋它,並丟棄所有非UTF-8編碼的字母。

其實保存你的源代碼文件中的UTF-8和/或改變的地方是字符串來自編碼聲明或第三個參數更改爲編碼字符串實際上保存英寸

What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With TextHandling Unicode Front To Back In A Web App如果你需要更多的信息。

相關問題