首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

解決 iconv() 函數「Detected an illegal character」錯誤的多種方法

     編輯:PHP 相關知識

錯誤現象

使用 iconv() 將 GB2312 編碼轉換為 UTF-8 時,部分漢字(如「??」)會觸發錯誤:

Notice: iconv() [function.iconv]: Detected an illegal character in input string

解決方案

方法一:使用 //IGNORE 參數忽略非法字符

iconv('UTF-8', 'GB2312//IGNORE', $str);

或直接指定目標編碼為 GBK:

iconv('UTF-8', 'GBK', $str);

方法二:檢查編碼一致性或抑制錯誤

確認來源字串編碼是否正確,或在函數前加上 @ 抑制錯誤提示(不建議長期使用)。

方法三:改用 mb_convert_encoding() 函數

mb_convert_encoding() 提供更穩健的編碼轉換支援:

<?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("測試字串", "UTF-8", "GBK");
?>

同理可用於 GB2312 轉 Big5:

<?php
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("你是我的朋友", "big5", "GB2312");
?>

建議

專案開發初期建議統一使用 UTF-8 編碼,減少轉碼需求;若必須轉碼,優先使用 mb_convert_encoding(),並做好異常處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved