ホームページ > バックエンド開発 > PHPチュートリアル > Webページを任意の文字セットで正常に表示する方法1_PHPチュートリアル

Webページを任意の文字セットで正常に表示する方法1_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:55:43
オリジナル
794 人が閲覧しました

転送先:coolcode.cn
通常、ウェブページ上で指定したエンコーディングでテキストを表示できるように、ウェブページでは GB2312、UTF-8、ISO-8859-1 などのエンコーディング文字セットを指定する必要があります。 。しかし、このような状況に遭遇する可能性は高くなります。つまり、ISO-8859-1 でエンコードされた Web ページに中国語の文字を表示したり、GB2312 でエンコードされた Web ページに韓国語の文字を表示したりする必要があるかもしれません。もちろん、解決策の 1 つは、ISO-8859-1 や GB2312 エンコーディングを使用せず、UTF-8 エンコーディングを使用することです。このように、このエンコーディングを使用する限り、さまざまな言語を混在して表示できます。これは現在多くのウェブサイトで使用されている方法です。

ここで話しているのは上記の方法ではありません。なぜなら、上記の方法では、ユーザーが手動で別の文字セットを指定するか、あるいは何らかの理由でその文字セットを UTF-8 として指定する必要があるからです。が機能せず、ブラウザが自動的に正しく認識しない場合、特にフレームで作成された一部の Web ページでは、表示される Web ページが文字化けします。フレーム内のページの文字セット設定が機能しない場合、Web は文字化けします。 Firefox では文字化けが表示され、変更できません (RightEncode プラグインをインストールしないと)。

ここで紹介する方法は、WebページがISO-8859-1文字セットに指定されている場合でも、中国語や日本語などを正しく表示できます。原理は非常に単純です。つまり、ISO-8859-1 エンコーディングの最初の 128 文字を除く他のすべてのエンコーディングは NCR (数値文字参照) で表されます。たとえば、「漢字」という 2 つの文字を「漢字」の形式で書くと、どの文字セットでも正しく表示できます。この原則に基づいて、既存の Web ページを任意の文字セットで表示できる Web ページに変換できる次のプログラムを作成しました。ソース Web ページの文字セットとソース Web ページを指定し、送信ボタンをクリックするだけで、ターゲット Web ページが取得されます。特定のテキストのみを変換することもできます。テキスト ボックスにテキストを入力し、そのテキストの元の文字セットを指定するだけで、エンコードされたテキストがページに表示されます。さらに、WordPress プラグインも作成し、どの文字セットでもブログが正しく表示されるようになりました。
変換プログラムアドレス: http://jb51.net/dxy/nochaoscode/

コードをコピー コードは次のとおりです:

function nochaoscode($encode, $str, $isemail = false) {
$str = iconv($encode, "UTF-16", $str); 
for ($i = 0; $i < strlen($str); $i++,$i++) {
$code = ord($str{$i}) * 256 + ord($str{$i + 1 });
if ($code < 128 and !$isemail) {
$output .= chr($code);
} else if ($code != 65279) {
$output .= "&#".$code.";";
}
}
return $output;
}
$encode = $_POST['encode'];
if ($encode == '') $encode = 'UTF-8';
if ($_FILES['file']['size'] > 0) {
$data = nochaoscode($encode, file_get_contents($_FILES['file']['tmp_name']));
header ("Content-type: application/octet-stream;"); 
header ("Content-length: ".strlen($data)); 
header ("Content-Disposition: attachment; filename=".$_FILES['file']['name']);
echo $data;
} else {
header ("Content-type: text/html; charset=UTF-8"); 
if ($_POST['email']) {
echo htmlentities(nochaoscode($encode, $_POST['email'], true));
}
else {
echo htmlentities(nochaoscode($encode, $_POST['content']));
}
?>

エンコード:

ファイル:



<フォームメソッド="POST">
エンコード:

コンテンツ:



<フォームメソッド="POST">
エンコード:

メール:



}
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/318233.html技術記事转:coolcode.cn 一般情况下,我们的网页要指定一编码文字集,如GB2312,UTF-8,ISO-8859-1等,这样我们就可能在网页上显示我们指定编码的文字...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート