にあなたの文字セットを設定する必要があります。私は何年もの間、次のような機能をしていました。私はそれを書いていない、と私はそれが私がそれを見つけた場所を思い出さないと思う。それはちょっとしたハックですが、私が思っている有用なものです。
<?php
function code2utf($num) {
if($num<128)return chr($num);
if($num<2048)return chr(($num>>6)+192).chr(($num&63)+128);
if($num<65536)return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
if($num<2097152)return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128).chr(($num&63)+128);
return '';
}
print "a" . code2utf(0x3000) . "b" . code2utf(0x1f44d) . "\n";
そして、私はこれを実行すると、私は次を参照してください。
$ php -f utftest
a b
注意を二つの空間のように見えるものというシングルダブル幅の文字です。
おそらく、あなたはこのように、あなたの入力文字列を構築するために上記の機能を使用することができます。
str_replace(code2utf(0x3000),"",$mystring);
WebChemistのコピー&ペーストのソリューションに対するこのようなソリューションの明白な利点は、それが完全にプログラム的だということで、プログラマーのツールの一部として特別な機能を必要としません。コードを再フォーマットするときに誤ってID_SPACE文字を上書きすることはなく、実際にコード内にその文字を入れる必要はなく、表現する必要のある他のUTF8文字に対して関数を再利用できます。もちろん
、あなたがこれを行うことが他の方法は、組み込みのPHP関数html_entity_decode()
です。
$ php -r 'print html_entity_decode("a b👍") . "\n";'
a b
'trim()'についてはどうですか? –
@AlvaroFlañoLarrondo..申し訳ありませんが、試してみてください: 'php -r 'print trim(html_entity_decode("&#x3000; a "))。 "\ n";そして '[trim()'](http://php.net/trim)には空白と見なされる文字が明記されており、0x3000はそれらの文字ではありません。 – ghoti