Perlでutf8をhtmlエンティティに変換します

アンドリュー・ニュービー

私は恐ろしいサイトを継承しているので、この質問を許してください:)サイトを完全にUTF8にアップグレードするのではなく、非標準の文字をHTMLエンティティに変換する必要があります。

&#ord_value;

このテストスクリプトは、1つの文字に対してこれを実行します。

$foo =~ s/(\x{ed})/to_ord($1)/e;

sub to_ord {
    return ("&#" . ord($_[0]). ";")
}

しかし、私がする必要があるのは、ord 127より大きいものでこれをトリガーすることです。これを行う簡単な方法はありますか?キャラクタークラスを調べましたが、法案に合うものが見つかりません

FWIW、私は彼らに現在データを保存する方法がひどいことを彼らに知らせました、そしてHTMLエンティティを検索しようとする人々に問題を引き起こすでしょう-しかしこれは私のコントロールの外にあります。

更新:これは機能しますが、それを行うためのより良い方法があるはずです-提案があれば共有してください:)

s/([^a-z \.,-_0-9])/to_ord($1)/eg
池上
s/(...)/ ... /eg;

パターンの選択:

  • [^\x00-\x21\x23-\x25\x28-\x3B\x3D\x3F-\x7F] (非ASCIIをエスケープします。)
  • [^\x09\x0A\x0D\x20-\x21\x23-\x25\x28-\x3B\x3D\x3F-\x7E] (非ASCII文字と制御文字をエスケープします。)

置換式の選択:

  • "&#".ord($1).";"
  • sprintf("&#x%X;", ord($1)) (CPUは追加されますが、帯域幅が減少します。)

例えば、

s/([^\x09\x0A\x0D\x20-\x21\x23-\x25\x28-\x3B\x3D\x3F-\x7E])/ sprintf("&#x%X;", ord($1)) /eg;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

エンコードされたhtmlエンティティをutf-8に変換します

分類Dev

間違ったエンコーディングの文字列をutf8に変換します

分類Dev

間違ったエンコーディングの文字列をutf8に変換します

分類Dev

Doctrineは、データベースにデータを保存するときにUTF8エンコーディングをhtmlエンティティに変更します

分類Dev

SimpleXML は HTML エンティティを変換します

分類Dev

すべての文字をHTMLエンティティに変換します

分類Dev

AndroidでHTMLエンティティを文字に変換する

分類Dev

Latin1でエンコードされたテキストフィールドをUTF8に変換するMySQL関数

分類Dev

クエリ中にすべてのフィールドをUTF8に変換します

分類Dev

エンコーディングをutf8に変更できません

分類Dev

テキストutf8をcharまたはstringに変換します

分類Dev

エンティティを保存するときのUTF8の問題

分類Dev

Android-UnicodeをHTMLエンティティに変換する

分類Dev

HTMLエンティティをPython絵文字に変換する

分類Dev

既存のHTMLエンティティのエンコードを防止します(&を&に変換しますが、&を& amp;に変換しません)

分類Dev

PythonでXML / HTMLエンティティをUnicode文字列に変換する

分類Dev

Djangoはtextareaエディターでutf8テキストを挿入します

分類Dev

Entity FrameworkCoreエンティティをSQL文字列に変換します

分類Dev

PHPのjson_encode関数がUTF-8文字列を16進エンティティに変換するのはなぜですか?

分類Dev

SVNエラー:文字列をネイティブエンコーディングから「UTF-8」に変換できません

分類Dev

SwiftでUnicodeシンボルまたはそのXML / HTMLエンティティをUnicode番号に変換します

分類Dev

Kotlin内でwin1251エンコーディングをUTF8に変換するにはどうすればよいですか?

分類Dev

ヒンディー語のテキストをphpを介してhtmlエンティティコードに変換します

分類Dev

utf8リテラル(つまり '\ u1F606')をルーンに変換する方法は?(ルーンからUTF8を取得しないでください!)

分類Dev

utf8以外のエンコーディングを使用してPerl6スクリプトを記述できますか?

分類Dev

UInt8を文字UTF8に変換します

分類Dev

UTF8番号をどのようにテキストに変換しますか

分類Dev

HTMLエンティティを使用している間、アンパサンドと変換も行います。

分類Dev

プレーンJavaScriptを使用して文字をHTMLエンティティに変換する方法

Related 関連記事

  1. 1

    エンコードされたhtmlエンティティをutf-8に変換します

  2. 2

    間違ったエンコーディングの文字列をutf8に変換します

  3. 3

    間違ったエンコーディングの文字列をutf8に変換します

  4. 4

    Doctrineは、データベースにデータを保存するときにUTF8エンコーディングをhtmlエンティティに変更します

  5. 5

    SimpleXML は HTML エンティティを変換します

  6. 6

    すべての文字をHTMLエンティティに変換します

  7. 7

    AndroidでHTMLエンティティを文字に変換する

  8. 8

    Latin1でエンコードされたテキストフィールドをUTF8に変換するMySQL関数

  9. 9

    クエリ中にすべてのフィールドをUTF8に変換します

  10. 10

    エンコーディングをutf8に変更できません

  11. 11

    テキストutf8をcharまたはstringに変換します

  12. 12

    エンティティを保存するときのUTF8の問題

  13. 13

    Android-UnicodeをHTMLエンティティに変換する

  14. 14

    HTMLエンティティをPython絵文字に変換する

  15. 15

    既存のHTMLエンティティのエンコードを防止します(&を&に変換しますが、&を& amp;に変換しません)

  16. 16

    PythonでXML / HTMLエンティティをUnicode文字列に変換する

  17. 17

    Djangoはtextareaエディターでutf8テキストを挿入します

  18. 18

    Entity FrameworkCoreエンティティをSQL文字列に変換します

  19. 19

    PHPのjson_encode関数がUTF-8文字列を16進エンティティに変換するのはなぜですか?

  20. 20

    SVNエラー:文字列をネイティブエンコーディングから「UTF-8」に変換できません

  21. 21

    SwiftでUnicodeシンボルまたはそのXML / HTMLエンティティをUnicode番号に変換します

  22. 22

    Kotlin内でwin1251エンコーディングをUTF8に変換するにはどうすればよいですか?

  23. 23

    ヒンディー語のテキストをphpを介してhtmlエンティティコードに変換します

  24. 24

    utf8リテラル(つまり '\ u1F606')をルーンに変換する方法は?(ルーンからUTF8を取得しないでください!)

  25. 25

    utf8以外のエンコーディングを使用してPerl6スクリプトを記述できますか?

  26. 26

    UInt8を文字UTF8に変換します

  27. 27

    UTF8番号をどのようにテキストに変換しますか

  28. 28

    HTMLエンティティを使用している間、アンパサンドと変換も行います。

  29. 29

    プレーンJavaScriptを使用して文字をHTMLエンティティに変換する方法

ホットタグ

アーカイブ