プロ・クリエータの実践ウェブテクニック集



日本語文字セットを一時的に変更する

 PHP スクリプト内で ob_start 関数を使用すれば一時的(部分的)に文字セットを変更することができます。

関数の説明

名前 説明 初期値 対応
ob_start 出力のバッファリングをオンにする '' php >= 4
ob_end_flush 出力バッファをフラッシュしてバッファリングをオフにする void php >= 4
default_charset デフォルトの文字セット '' php >= 4
mb_language デフォルトの言語 'neutral'(utf-8) php >= 4
mb_http_input HTTP入力文字エンコーディング 'pass' php >= 4
mb_http_output HTTP出力文字エンコーディング 'pass' php >= 4
mb_internal_encoding 内部文字エンコーディング
*注 mb_languageの下位に書く必要があります。
NULL php >= 4
mb_substitute_character 無効な文字の代替出力の有効・無効 NULL php >= 4

PHP スクリプトの記述

UTF-8 で作成・保存して Shift_JIS で表示させる場合

<?php # Start of Buffering. ob_start('mb_output_handler'); default_charset('Shift_JIS'); mb_language('ja'); mb_http_input('auto'); mb_http_output('SJIS'); mb_internal_encoding('UTF-8'); mb_substitute_character(null); # Output of data. print('日本語文字セットの一時変更テスト'); # Flash & Clear of Buffering. ob_end_flush(); ?>

EUC-JP で作成・保存して Shift_JIS で表示させる場合

<?php # Start of Buffering. ob_start('mb_output_handler'); default_charset('Shift_JIS'); mb_language('ja'); mb_http_input('auto'); mb_http_output('SJIS'); mb_internal_encoding('EUC-JP'); mb_substitute_character(null); # Output of data. print('日本語文字セットの一時変更テスト'); # Flash & Clear of Buffering. ob_end_flush(); ?>