mb_substitute_characterの関数は、マルチバイト文字列関数( mb_convert_encodingなど)を設定して、変換できない文字を置き換えることです。その関数プロトタイプは次のとおりです。
mb_substitute_character([ mixed $substchar = null ]): mixed
パラメータ$ SubstCher :オプション、代替文字のタイプを指定します。
返品値:パラメーターが渡されると、以前の代替文字設定が返されます。パラメーターが渡されない場合、現在の代替文字設定が返されます。
$ Sustcharパラメーターは、次のタイプの値を受け入れることができます。
整数値(0-255)
シングルバイト文字を表すASCIIコード。例えば:
mb_substitute_character(63); // 代替文字をに設定しますASCII疑問符 '?'
文字列<br> 特定の代替文字を表すために、文字列を渡すことができます。例えば:
mb_substitute_character('?'); // 使用“代替文字”シンボル(U+FFFD)
定義された定数
PHPには、いくつかの一般的に使用される代替文字定数が組み込まれています。
MB_Substitute_None :交換されません。間違った文字に遭遇した場合、それらは直接廃棄されます。
mb_substitute_character :代替文字(通常は「?」または「?」)を使用します。
MB_SUBSTITETITE_ENTITY :代わりにHTMLエンティティを使用します。
mb_substitute_string :カスタマイズされた代替文字列( mb_substitute_characterの設定とさらに一致する必要があります)。
例えば:
mb_substitute_character(MB_SUBSTITUTE_CHARACTER);
違法な数や文字列を渡す<br> 多くの初心者は、数字または文字列をランダムに渡すため、無効な代替文字設定または予期しない結果が得られます。 MB_Substitute_Characterでは、数値が0〜255の間でなければならず、文字列は単一の文字または事前定義定数でなければならないことを要求します。
返品値を無視してください<br> この関数は、以前の代替文字設定を返し、リターン値を無視すると、複雑なプログラムで現在の代替文字ステータスを追跡することが難しくなる場合があります。
一定の名前の誤用<br> 間違っているか、誤って使用される場合があります。たとえば、 mb_substitute_characterの代わりにmb_substitute_charとして書くと、エラーが発生します。
エンコーディング設定で代替文字を混乱させます
MB_SUBSTITED_CHARACTERは、代替文字のみを設定し、 MB_INTERNAL_ENCODINGまたはMB_DETECT_ENCODINGと直接関係がありませんが、簡単に誤解されます。
<?php
// 代替文字をに設定します问号 '?'
mb_substitute_character(63);
$str = "こんにちは世界"; // "Hello world"日本語
// エラーコード変換を意図的に使用します
$converted = mb_convert_encoding($str, "ASCII", "UTF-8");
echo $converted; // 変換できない文字は置き換えられます '?'
?>
詳細については、公式のPHPドキュメントを確認してください。
<code> https://gitbox.net/manual/zh/function.mb-substitute-character.php </code>