mb_convert_encoding(addslashes($u[16]), 'UTF-8','ISO-8859-15,shift-jis,eucjp-win,sjis-win,ISO-8859-1,UTF-8')
このため、mb_stringの開発者は、1つずつ判断できるmb_check_encoding関数を提供しています
意味解析がなければ、コンピュータは iso-8859-1 と SHIFT-JIS を区別できないと思います
親愛なる友人、私のような状況を解決する方法
以下は、ヨーロッパの
urbanizaci? camino de vi?les calle rio aragon n9 pinseque です
以下は、日本語
「???iPhone5/4S/4???????????」って一文字ずつ判定してたら処理に時間がかかるんじゃない? ? ?
urbanizaci? camino de vi?les calle rio aragon n9 pinseque
$s = "???????? iPhone5/4S/4? ?? ?? ?????????? ?????? ??????? ";echo mb_detect_encoding($s, "ASCII,JIS,UTF-8,EUC-JP,SJIS");echo mb_convert_encoding($s, 'utf-8', 'SJIS'), PHP_EOL;$d = explode(',', 'shift-jis,eucjp-win,sjis-win,utf-8,jis,sjis,euc-jp,gbk');foreach($d as $t) var_dump($t, mb_check_encoding($s, $t));
bool(false)
string(8) "sjis-win"
bool(true)
string(5) "utf-8"
bool(false)
string(3) "jis"
bool(false)
string ( 4) "sjis"
bool(true)
string(6) "euc-jp"
bool(false)
string(3) "gbk"
bool(true)
状況を混乱させてください、笑
rree
ISO-8859-1都市間カミノ デ ビニャーレス コール リオ アラゴン n9 ピンシーケンス
bool(false)
string(9) "eucjp-win"
bool(false)
string(8) " sjis-win"
bool(true)
string(5) "utf-8"
bool(false)
string(3) "jis"
bool(false)
string(4) "sjis"
bool(false)
string(6) "euc-jp"
bool(false)
string(3) "gbk"
bool( true)
string(6) "euc-kr"
bool( true)
string(10) "iso -8859-1"
bool(true)
LZ を攻撃するつもりはありません。ただ 1 点だけ指摘したいのですが、プログラムを書くときは注意が必要です。できることだけを実行し、実行しないようにしてください。結局のところ、それを使用する人はあなたを信頼しています
BOM の指示がなければ、文字列の文字セットを識別することは非常に困難です。文字列に 2 つの文字セットの違いが含まれている場合にのみ可能です。そして、紐は十分な長さでなければなりません
上の 2 人、ありがとう。
説明させていただきますが、これらは処理対象のデータであり、さまざまな国の Web サイトからダウンロードした生データです。
あなたのコードを通して、1 つまたは 2 つの関数だけに依存すると、処理する必要があるデータを適切に識別できない可能性があると思います。
そこで私は次善策を使用します。国というフィールドがあり、対応する文字列を国に応じて変換します。