從這個字符串中刪除字符「 」當我執行下面的代碼時,它會返回非標準字符,那麼我們如何刪除它或獲取原始字符串?我們如何使用php
header('Content-type: text/html; charset=utf-8');
$String = "à¸?่à¸à¸•à¸±à¹‰à¸‡à¹€à¸¡à¸·à¹ˆà¸";
echo $String;
輸出:�?่อตั้งเมื่อ
需要實際結果:ก่อตั้งเมื่อ
從這個字符串中刪除字符「 」當我執行下面的代碼時,它會返回非標準字符,那麼我們如何刪除它或獲取原始字符串?我們如何使用php
header('Content-type: text/html; charset=utf-8');
$String = "à¸?่à¸à¸•à¸±à¹‰à¸‡à¹€à¸¡à¸·à¹ˆà¸";
echo $String;
輸出:�?่อตั้งเมื่อ
需要實際結果:ก่อตั้งเมื่อ
你提到的人物encdoing爲UTF-8,其中作爲字符串是不編碼爲UTF-8。這就是「?」的原因標記出現在輸出中而不是預期的標記中。
首先,並非由編碼問題相混淆,你真的想閱讀下面的文章:http://kunststube.net/encoding/
其次,我只是做了以下內容:
$ vim ~/sandbox/php/encoding.php
(inserted your code verbatim)
$ cd ~/sandbox/php/
$ php -S localhost:1200
我打開後Firefox的頁面http://localhost:1200,我得到了$String
的內容。
我的意思是,我得到了字符的下面一行:
à¸?่à¸à¸•à¸±à¹‰à¸‡à¹€à¸¡à¸·à¹ˆà¸
這意味着你的瀏覽器,無論它是,不知道如何使你進入它的字符。字符串本身正確編碼爲UTF-8。您必須將瀏覽器設置爲以UTF-8格式顯示文本,或者安裝支持這些符號的字體。
另外,如果你想輸出,說一些文本使用UTF-8梵文符號,你只需要滿足PHP下列要求:
你的字符串,à¸?่à¸à¸•à¸±à¹‰à¸‡à¹€à¸¡à¸·à¹ˆà¸
是無效的utf-8。這就是爲什麼�
顯示 - 瀏覽器不知道如何解釋它。
正如其他人所指出的,第三個位置上的問號可能是問題所在。
錯誤字符串的前三個字節是e0 b8 3f
(3f
是ascii碼?
)。我不知道任何泰語,但THAI CHARACTER KO KAI的字節順序看起來很相似,應該是e0 b8 81
。
這也可以解釋爲什麼它顯示爲一個問號。 0x81在latin1和windows-1252中未定義。也許OP試圖複製和粘貼編碼的字符串。順便說一句,找到這個角色很好。 – Phil
您是如何獲得/獲得字符串「à¸?à¹à¸à¸?àà?à¹?àà?à¸?à¸?à¹à¸'??? – Marcx
提示:開頭附近的問號是錯誤的,它打破了utf8編碼。 – Phil
您可以展示您的實際結果的圖像嗎?因爲至少在我的系統中沒有支持這些字形的字體,所以你在「輸出」中寫的內容與你在「需要實際結果」中寫的內容沒有什麼不同 - 兩行代碼點都是正方形。 – hijarian