私の要件の1つは、「テキストボックス名はUTF-8文字セットのみを受け入れるべきです。 UTF-8以外の文字セットを入力してネガティブテストを実行したい。これどうやってするの?UTF-8以外の文字セットを生成するには
11
A
答えて
8
あなたはthis definition from Wikipediaから簡単なはず非UTF-8文字の、構築する方法を求めているならば:U + 007Fを通じてU + 0000のコードポイントについては
を、各コードポイントは1でありますバイト長とこのようになります:コードポイントの場合
0xxxxxxx // a
U + 0080 U + 07FF通じ、各コードポイントは2バイト長であり、このようになります。
110xxxxx 10xxxxxx // b
など。
1バイト長の不正なUTF-8文字を作成するには、最上位ビットを1(パターンaと異なる)にし、2番目のビットを0(パターンbと異なる)にする必要があります。 :
10xxxxxx
あるいはまた、両方のパターンとは異なり
111xxxxx
。
同じロジックを使用すると、2バイト以上の不正なコードユニットシーケンスを構築することができます。
あなたは言語にタグを付けていなかったが、私はそれをテストしなければならなかったので、私はJavaの使用:
for (int i=0;i<255;i++) {
System.out.println(
i + " " +
(byte)i + " " +
Integer.toHexString(i) + " " +
String.format("%8s", Integer.toBinaryString(i)).replace(' ', '0') + " " +
new String(new byte[]{(byte)i},"UTF-8")
);
}
0〜31が非印字可能文字である、そして32は、印刷可能な文字に続くスペースは、次のとおりです。
...
31 31 1f 00011111
32 32 20 00100000
33 33 21 00100001 !
...
126 126 7e 01111110 ~
127 127 7f 01111111
128 -128 80 10000000 �
delete
は0x7f
であり、その後は128から254まで有効な文字は印刷されません。また、UTF-8 chartableから見ることができます:コードポイントU+0080
は2バイト0xC2 0x80
(ビット11000010 10000000
)で表現されている間
コードポイントU+007F
は、1バイト0x7F
(ビット01111111
)で表されます。
あなたはUTF-8に慣れていない場合、私は強く、この優れた記事を読んでお勧めします。UI経由
関連する問題
- 1. PHP MySQLの文字セットUTF8の問題
- 2. utf8 db内のansi blobデータをutf8文字セットに変換する
- 3. アラビア語UTF8 +英文字列以外の英数字を削除する
- 4. 英語以外の文字セットを使用する関数
- 5. mysql 4 wtih latin1文字セットをutf8でmysql 5にマイグレーションする
- 6. UTF8以外の文字を含むすべての行を選択する
- 7. UTF8文字列から英数字以外の文字を削除する正規表現
- 8. utf8文字列からutf8以外の同等の文字を取得するにはどうすればよいですか?
- 9. IBM文字セット・ヘッダ例外を発生させる
- 10. mysqlにutf8文字を挿入する(utf8の照合、charset、および名前セットを使用)
- 11. 文字列からコントロールカー以外の印刷可能なutf8文字を削除します。
- 12. SuspensionManager.SessionStateに文字列以外の文字を格納する
- 13. タイ文字をUTF8データベースに
- 14. 大きな文字ファイルを特定の文字セットからUTF8に変換する
- 15. 変数のセットからハッシュ文字列を生成
- 16. アルファベット以外の文字で文字列を分割する
- 17. PHP以外の文字を文字列から削除するには?
- 18. QLPreviewControllerとUTF8文字
- 19. 英語以外の文字はHtlmCleaner
- 20. c#文字列のRegex文字以外の文字
- 21. ウェブサイトがcp1251で開き、文字セットがUTF8に設定されます
- 22. DataGridViewComboBoxColumnの文字列以外の値により、DataGridViewのDataErrorsが発生する
- 23. 文字セットへの文字セットと文字キャストへのキャスト
- 24. 文字列/ UTF8の問題
- 25. Javaの:UTF8文字列
- 26. latin mysqlデータベースでUTF8文字が発生する
- 27. Ruby正規表現:空白以外の文字以外の文字を置換する
- 28. .netでUTF-8文字セット内のすべての文字を生成する方法
- 29. 整数または文字以外の文字列をチェックするa - z
- 30. MySQL 5.7の文字セットを変更できません(latinからutf8へ)
は、あなたが苦労これをやっています。あなたは何とかそれをプログラム的にやる必要があります。 – leppie
まず*プログラミング言語*、環境、コンテキストを定義します。これは、あなたが/ on/inで作業しているシステムによって非常に異なります。 – deceze
なぜこの質問のDOWNVOTE? – swapneel