2

文字列に対して utf8_encode() を実行した後に取得する、この「v\u00e4lkommen until mig」のような文字列があります。

その文字列になりたい

 välkommen till mig

どこのキャラクター

  \u00e4 = ä = ä

PHPでこれを達成するにはどうすればよいですか?

4

3 に答える 3

0

編集:HTML文字を保持したいので、ソース文字列は投稿したものとはまったく違うと思います(\unnnn文字列として含まれているのではなく、実際のユニコードだと思います)。最善の選択肢はこれだと思います:

$html = str_replace( str_replace( str_replace( htmlentities( $whatever ), '&lt;', '<' ), '&gt;', '>' ), '&amp;', '&' );

(注: への呼び出しはありませんutf8-decode)

元の答え:

直接変換はありません。まず、もう一度デコードします。

$decoded = utf8_decode( $whatever );

次に、HTML としてエンコードします。

$html = htmlentities( $decoded );

もちろん、変数なしでそれを行うことができます:

$html = htmlentities( utf8_decode( $whatever ) );

http://php.net/manual/en/function.utf8-decode.php

http://php.net/manual/en/function.htmlentities.php

正規表現でこれを行うには (推奨されません。遅くなる可能性が高く、信頼性が低くなります)、HTML が&#xnnnn;構成をサポートしているという事実を利用できます。ここで、は既存の値nnnnと同じです。\unnnnしたがって、次のように言えます。

$html = preg_replace( '/\\\\u([0-9a-f]{4})/i', '&#x$1;', $whatever )
于 2013-08-10T14:19:49.060 に答える