Unicode文字の中にASCII制御文字を含めることはできますか

Rhotac Rhotac

ASCII文字とUnicode文字が混在するバイナリデータを解析しています。ここに例があります:

A .. | B .... | C.。

ここで、2つのドットはUnicode文字の2バイトを表します。

私の質問は..フィールド区切り文字(|)(0x7c)を使用してこのデータを解析しても安全ですか。または、0x7cがUnicodeバイトの1つに現れる可能性がありますか?

お気に入り

A. || B .... | C.。

ここで、2番目と3番目のバイトは実際にはUnicode文字の一部です。|を使用して解析する場合 セパレータとして、間違った値を生成します。ありがとう

ユッカ・K・コルペラ

「Unicode文字」という表現は、「文字のUTF-16エンコーディング」を意味しているように見えます(コメントから判断して)。その場合、答えは、任意のAscii制御文字と任意のAscii文字がそこに表示される可能性があるということです(より正確には、UTF-16でエンコードされたデータのバイトの1つがAsciiコードの文字を表すバイトと一致する可能性があります)。自明なことに、ASCII文字のUTF-16エンコーディングは、0バイトとASCIIコード値を含むバイトで構成されます。また、たとえば、U + 7C7C CJK UNIFIED IDEOGRAPH-7C7C(xiān)のUTF-16エンコーディングは、2つの0x7Cバイトで構成されます。

VERTICAL LINE” |”に注意してください U + 007C(ASCIIでは0x7C)は、通常の用語では制御文字ではありません。ASCII制御文字は0x00から0x1Fおよび0x7Fです。(SPACE 0x20は、制御文字とグラフィック文字の両方であると説明されることがありますが、これは混乱を招き、最近では一般的に回避されています。)

解析の問題を解決するには、データの形式をより正確に指定する必要があります。アスキー文字の後にUTF-16エンコーディングで可変量のデータが続くという考えの場合、形式は明確に解析できないため、設計が不十分であるように思われますたとえば、「A .. | B .... | C ..」では、ここで「| B」(バイト0x7C 0x42)として表示されているものが実際にはUTF-16ではないことを(追加のルールなしで)実際に知ることはできません。 U + 7C42またはU + 427Cを表すデータ(UTF-16のエンディアンに依存)。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Ansible:「URLに制御文字を含めることはできません」

分類Dev

URLに制御文字を含めることはできません-Python

分類Dev

'\'をPython文字列に含めることはできますか?

分類Dev

クエリ文字列に文字列以外のものを含めることはできますか?

分類Dev

ユーザーがアプリの権限を制御できるページをアプリに含めることはできますか?

分類Dev

MySQL:1つの列に複数の文字セットを含めることはできますか?

分類Dev

有効なUnicode文字列にFFFFを含めることができますか?Java / CharacterIteratorは壊れていますか?

分類Dev

Java Stringにはいくつの文字を含めることができますか?

分類Dev

Javaプロパティのキーに空白文字を含めることはできますか?

分類Dev

HTTP / 1.1本文に「\ r \ n」のような文字列を含めることはできますか?

分類Dev

状況依存文法に空の文字列を含めることはできますか?

分類Dev

EditTextに<文字を含めることはできません

分類Dev

どのように私は、MySQLで文字列リテラルを使用して文字列内の括弧を含めることができますか?

分類Dev

goに外部ファイルを文字列定数として含めることはできますか?

分類Dev

Reqexは空白で始まらず、文字のみに空白を含めることができます

分類Dev

Unicodeを含む文字列を置き換えることができないのはなぜですか?

分類Dev

ASCII文字だけを含むUNICODE文字列は常にASCII文字列と同じですか?

分類Dev

名前にはURLに適した文字のみを含めることができます

分類Dev

TensorFlow:データセットに文字列カテゴリ値を含めることはできますか?

分類Dev

PACファイルにクエリ文字列を含めることはできますか?

分類Dev

パスワードには特定の文字のみを含めることができます-javascript

分類Dev

制御文字を別の制御文字に置き換えます

分類Dev

文字列を検証しようとすると、数字または文字しか含まれません(スペースを含めることができます)

分類Dev

XSLTでUnicode文字を置き換えることはできますか?

分類Dev

Python文字列splitlines()は、特定のUnicode制御文字を削除します

分類Dev

XmlException:文字 '='を名前に含めることはできません

分類Dev

Ctrl +「いくつかのキー」が押されたときに制御文字でOnKeyPressイベントの迷惑な生成を停止する方法はありますか?

分類Dev

会社名を設定する方法は、文字javascript検証ルールで開始する必要がありますか?数字と特殊文字の後に文字を含めることができます

分類Dev

文字列にASCII文字のみが含まれていることを確認しますか?

Related 関連記事

  1. 1

    Ansible:「URLに制御文字を含めることはできません」

  2. 2

    URLに制御文字を含めることはできません-Python

  3. 3

    '\'をPython文字列に含めることはできますか?

  4. 4

    クエリ文字列に文字列以外のものを含めることはできますか?

  5. 5

    ユーザーがアプリの権限を制御できるページをアプリに含めることはできますか?

  6. 6

    MySQL:1つの列に複数の文字セットを含めることはできますか?

  7. 7

    有効なUnicode文字列にFFFFを含めることができますか?Java / CharacterIteratorは壊れていますか?

  8. 8

    Java Stringにはいくつの文字を含めることができますか?

  9. 9

    Javaプロパティのキーに空白文字を含めることはできますか?

  10. 10

    HTTP / 1.1本文に「\ r \ n」のような文字列を含めることはできますか?

  11. 11

    状況依存文法に空の文字列を含めることはできますか?

  12. 12

    EditTextに<文字を含めることはできません

  13. 13

    どのように私は、MySQLで文字列リテラルを使用して文字列内の括弧を含めることができますか?

  14. 14

    goに外部ファイルを文字列定数として含めることはできますか?

  15. 15

    Reqexは空白で始まらず、文字のみに空白を含めることができます

  16. 16

    Unicodeを含む文字列を置き換えることができないのはなぜですか?

  17. 17

    ASCII文字だけを含むUNICODE文字列は常にASCII文字列と同じですか?

  18. 18

    名前にはURLに適した文字のみを含めることができます

  19. 19

    TensorFlow:データセットに文字列カテゴリ値を含めることはできますか?

  20. 20

    PACファイルにクエリ文字列を含めることはできますか?

  21. 21

    パスワードには特定の文字のみを含めることができます-javascript

  22. 22

    制御文字を別の制御文字に置き換えます

  23. 23

    文字列を検証しようとすると、数字または文字しか含まれません(スペースを含めることができます)

  24. 24

    XSLTでUnicode文字を置き換えることはできますか?

  25. 25

    Python文字列splitlines()は、特定のUnicode制御文字を削除します

  26. 26

    XmlException:文字 '='を名前に含めることはできません

  27. 27

    Ctrl +「いくつかのキー」が押されたときに制御文字でOnKeyPressイベントの迷惑な生成を停止する方法はありますか?

  28. 28

    会社名を設定する方法は、文字javascript検証ルールで開始する必要がありますか?数字と特殊文字の後に文字を含めることができます

  29. 29

    文字列にASCII文字のみが含まれていることを確認しますか?

ホットタグ

アーカイブ