文字列に対して utf8_encode() を実行した後に取得する、この「v\u00e4lkommen until mig」のような文字列があります。
その文字列になりたい
välkommen till mig
どこのキャラクター
\u00e4 = ä = ä
PHPでこれを達成するにはどうすればよいですか?
文字列に対して utf8_encode() を実行した後に取得する、この「v\u00e4lkommen until mig」のような文字列があります。
その文字列になりたい
välkommen till mig
どこのキャラクター
\u00e4 = ä = ä
PHPでこれを達成するにはどうすればよいですか?
編集:HTML文字を保持したいので、ソース文字列は投稿したものとはまったく違うと思います(\unnnn
文字列として含まれているのではなく、実際のユニコードだと思います)。最善の選択肢はこれだと思います:
$html = str_replace( str_replace( str_replace( htmlentities( $whatever ), '<', '<' ), '>', '>' ), '&', '&' );
(注: への呼び出しはありません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 )