=encoding utf-8 =head1 NAME =begin original HTML::Entities - Encode or decode strings with HTML entities =end original HTML::Entities - HTMLエンティティ(実体参照)文字列をエンコード/デコードする =head1 SYNOPSIS use HTML::Entities; $a = "Våre norske tegn bør æres"; decode_entities($a); encode_entities($a, "\200-\377"); =begin original For example, this: =end original 以下は例である: $input = "vis-à-vis Beyoncé's naïve\npapier-mâché résumé"; print encode_entities($input), "\n" =begin original Prints this out: =end original 結果は以下のようになる: vis-à-vis Beyoncé's naïve papier-mâché résumé =head1 DESCRIPTION =begin original This module deals with encoding and decoding of strings with HTML character entities. The module provides the following functions: =end original このモジュールは、HTML文字エンティティ(実体参照)のエンコードとデコード を取り扱う。このモジュールは以下の機能を提供する: =over 4 =item decode_entities( $string, ... ) =begin original This routine replaces HTML entities found in the $string with the corresponding Unicode character. Under perl 5.6 and earlier only characters in the Latin-1 range are replaced. Unrecognized entities are left alone. =end original このルーチンは対応するユニコード文字を含む $string 中のHTMLエンティティ を置き換える。perl 5.6 とそれ以前では、Latin-1の範囲の文字のみが置き換え られる。認識できないエンティティはそのまま残る。 =begin original If multiple strings are provided as argument they are each decoded separately and the same number of strings are returned. =end original もしも、引数として複数の文字列が提供された場合、それらは個別にデコード され、同じ数の文字列が返る。 =begin original This routine is exported by default. =end original もしも、voidコンテキストが呼ばれた場合、引数はその場でデコードされる。 =begin original This routine is exported by default. =end original このルーチンは規定値でエクスポートされる。 =item _decode_entities( $string, \%entity2char ) =item _decode_entities( $string, \%entity2char, $expand_prefix ) =begin original This will in-place replace HTML entities in $string. The %entity2char hash must be provided. Named entities not found in the %entity2char hash are left alone. Numeric entities are expanded unless their value overflow. =end original これは、$string中のHTMLエンティティをその場で置き換える。%entiti2char ハッシュが提供されなければならない。%entity2char中に見つからない、名前 が付いたエンティティはそのまま残る。数字のエンティティはその値がオーバ フローするまで拡張される。 =begin original The keys in %entity2char are the entity names to be expanded and their values are what they should expand into. The values do not have to be single character strings. If a key has ";" as suffix, then occurrences in $string are only expanded if properly terminated with ";". Entities without ";" will be expanded regardless of how they are terminated for compatiblity with how common browsers treat entities in the Latin-1 range. =end original %entity2char中のキーは拡張されるエンティティ名で、その値は拡張されるべき ものである。その値は単一文字のの文字列であってはならない。もしもキーが サフィックスとして";"を持っているならば、$string中に見つかるものは、 もしも適切に";"で終了しているならば、それのみ拡張される。";"を持たない エンティティは、共通のブラウザが、Latin-1の範囲中でエンティティを取り扱う コンパチビリティのためにどのように終了したとしていても、拡張される。 =begin original If $expand_prefix is TRUE then entities without trailing ";" in %entity2char will even be expanded as a prefix of a longer unrecognized name. The longest matching name in %entity2char will be used. This is mainly present for compatibility with an MSIE misfeature. =end original もしも、$expand_prefix が TRUE であれば、%entity2char中の、末尾の";"なしの エンティティはより長い認識されない名前のプレフィックスとして、拡張される。 %entity2char中の、もっとも長い一致した名前が使われる。これは、主に、MSIE の間違った機能に対する互換のために提供されている。 $string = "foo bar"; _decode_entities($string, { nb => "@", nbsp => "\xA0" }, 1); print $string; # will print "foo bar" =begin original This routine is exported by default. =end original このルーチンは規定値でエクスポートされる。 =item encode_entities( $string ) =item encode_entities( $string, $unsafe_chars ) =begin original This routine replaces unsafe characters in $string with their entity representation. A second argument can be given to specify which characters to consider unsafe (i.e., which to escape). The default set of characters to encode are control chars, high-bit chars, and the C<< < >>, C<< & >>, C<< > >>, C<< ' >> and C<< " >> characters. But this, for example, would encode I the C<< < >>, C<< & >>, C<< > >>, and C<< " >> characters: =end original このルーチンはエンティティの表現と共に $string中の安全でない文字を 置き換える。2番目の引数は、どの文字が安全でないと考えられるかを提供する ことが出来る(たとえば、どれをエスケープするか)。エンコードされる規定値 の文字セットは、コントロール文字、8ビット目が設定されている文字と C<< < >>, C<< & >>, C<< > >>, C<< ' >> と C<< " >> である。しかし、 これは、例をあげると、C<< < >>, C<< & >>, C<< > >>, C<< ' >> と C<< " >> は以下のような形でエンコードできる。 $encoded = encode_entities($input, '<>&"'); =begin original This routine is exported by default. =end original このルーチンは規定値でエクスポートされる。 =item encode_entities_numeric( $string ) =item encode_entities_numeric( $string, $unsafe_chars ) =begin original This routine works just like encode_entities, except that the replacement entities are always C<&#xI;> and never C<&I;>. For example, C returns "rôle", but C returns "rôle". =end original このルーチンは、encode_entitiesと同じように動作するが、置換エンティティ は常時C<&#xI;>となり、決してC<&I;>にならないところが 違う。例をあげると、 C は "rôle" を 返すが、Cは"rôle"を返す。 =begin original This routine is I exported by default. But you can always export it with C or even C =end original このルーチンは規定値ではエクスポートI<されない>。しかし、 Cか、 C で常にエクスポートすることが出来る。 =back =begin original All these routines modify the string passed as the first argument, if called in a void context. In scalar and array contexts, the encoded or decoded string is returned (without changing the input string). =end original 上記のすべてのルーチンは、もしも、void コンテキストとして呼ばれた場合、 最初の引数として渡された文字列を変更する。スカラーまたは配列コンテキスト 中では、エンコードまたはデコードされた文字列が戻る(入力文字列の変更 なしに)。 =begin original If you prefer not to import these routines into your namespace, you can call them as: =end original もしも、名前空間にそれらのルーチンをインポートしたくないのであれば、 それらを以下のように呼び出すことが出来る: use HTML::Entities (); $decoded = HTML::Entities::decode($a); $encoded = HTML::Entities::encode($a); $encoded = HTML::Entities::encode_numeric($a); =begin original The module can also export the %char2entity and the %entity2char hashes, which contain the mapping from all characters to the corresponding entities (and vice versa, respectively). =end original これらのモジュールは、対応するエンティティ(と逆もまた同様)のための すべての文字列からのマッピングを含む $char2entityと%entity2charハッシュ をもエクスポートすることが出来る。 =head1 COPYRIGHT Copyright 1995-2006 Gisle Aas. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut