UTF-8移行のチートシート

UTF-8の結節:Xでエンコードされたサイトがあり、UTF-8に変換する必要があります

サイトが正しく機能するように、UTF-8に翻訳する必要があるものの短いリストを作成しています。

  1. 上記のプライバシーのMySQLデータベース
  2. mbstringをインストールする
  3. MBstring構成
  4. PHPで安全でないマルチバイト関数を処理する
  5. マルチバイト文字列のhtmlentities()
  6. ヘッダーのコンテンツタイプの確認
  7. バイナリファイルと文字列を確認する








1.上記のプライバシーのMySQLデータベース



サイトがUTF-8で動作する場合、すべてがUTF-8でデータベースにある必要があります。 かなり論理的です。 これを実行して、新しいデータベースを作成します。

CREATE DATABASE db_name

CHARACTER SET utf8

DEFAULT CHARACTER SET utf8

COLLATE utf8_general_ci

DEFAULT COLLATE utf8_general_ci

;






既存のものを変更するには:

ALTER DATABASE db_name

CHARACTER SET utf8

DEFAULT CHARACTER SET utf8

COLLATE utf8_general_ci

DEFAULT COLLATE utf8_general_ci

;






このようなテーブルの場合:

ALTER TABLE tbl_name

DEFAULT CHARACTER SET utf8

COLLATE utf8_general_ci

;








2. mbstringをインストールします





Linux(上記のプライバシーのDebian):#aptitude install php-mbstring





3. mbstring設定



php.inihttpd.confまたは.htaccessで次のことを行います( httpd.confまたは.htaccessの php_valueを渡すことを忘れないでください)。

mbstring.language = Neutral ; Set default language to Neutral(UTF-8) (default)

mbstring.internal_encoding = UTF-8 ; Set default internal encoding to UTF-8

mbstring.encoding_translation = On ; HTTP input encoding translation is enabled

mbstring.http_input = auto ; Set HTTP input character set dectection to auto

mbstring.http_output = UTF-8 ; Set HTTP output encoding to UTF-8

mbstring.detect_order = auto ; Set default character encoding detection order to auto

mbstring.substitute_character = none ; Do not print invalid characters

default_charset = UTF-8 ; Default character set for auto content type header










4. PHPでの安全でないマルチバイト関数の処理



スクリプトを適切に機能させるために使用する必要がある関数のリストを次に示します。

メール() mb_send_mail()
strlen() mb_strlen()
strpos() mb_strpos()
strrpos() mb_strrpos()
substr() mb_substr()
strtolower() mb_strtolower()
strtoupper() mb_strtoupper()
substr_count() mb_substr_count()
エレグ() mb_ereg()
エレギ() mb_eregi()
ereg_replace() mb_ereg_replace()
eregi_replace() mb_eregi_replace()
分割() mb_split()








5.マルチバイト文字列のhtmlentities()





php.netを使用した単純なプレースホルダー関数。 シンプルなテキストで十分です。

/**

* Multibyte equivalent for htmlentities() [lite version :)]

*

* @param string $str

* @param string $encoding

* @return string

**/

function mb_htmlentities($str, $encoding = 'utf-8') {

mb_regex_encoding($encoding);

$pattern = array('<', '>', '"', '\'');

$replacement = array('<', '>', '"', ''');

for ($i=0; $i<sizeof($pattern); $i++) {

$str = mb_ereg_replace($pattern[$i], $replacement[$i], $str);

}

return $str;

}









6.ヘッダーのコンテンツタイプの確認





すべてがシンプルです。 いずれかに変更:

header('Content-Type: text/html; charset=UTF-8');









7.バイナリファイルと文字列を確認する



すべてをすべて再接続し、何も忘れないでください=)



チートシート、記事ではありません。



All Articles