私の要件の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. mysqlのutf8以外の列の推奨文字セット
- 2. 文字セットUTF8に同じエンコードが、ANSI
- 3. PHP MySQLの文字セットUTF8の問題
- 4. utf8 db内のansi blobデータをutf8文字セットに変換する
- 5. アラビア語UTF8 +英文字列以外の英数字を削除する
- 6. mysql 4 wtih latin1文字セットをutf8でmysql 5にマイグレーションする
- 7. 英語以外の文字セットを使用する関数
- 8. UTF8以外の文字を含むすべての行を選択する
- 9. ファイルの内容からUTF8以外の文字を削除する
- 10. UTF8文字列から英数字以外の文字を削除する正規表現
- 11. utf8文字列からutf8以外の同等の文字を取得するにはどうすればよいですか?
- 12. 生のutf8文字列を取得
- 13. mysqlにutf8文字を挿入する(utf8の照合、charset、および名前セットを使用)
- 14. IBM文字セット・ヘッダ例外を発生させる
- 15. 文字列からコントロールカー以外の印刷可能なutf8文字を削除します。
- 16. SuspensionManager.SessionStateに文字列以外の文字を格納する
- 17. タイ文字をUTF8データベースに
- 18. 大きな文字ファイルを特定の文字セットからUTF8に変換する
- 19. GolangがUTF8文字列をUTF8に変換する
- 20. 文字列をUTF8に変換する
- 21. ASCII以外の文字でpdfを生成しようとするとUnicodeのデコードエラーが発生する
- 22. QLPreviewControllerとUTF8文字
- 23. 変数のセットからハッシュ文字列を生成
- 24. grepキーボード以外の文字
- 25. JavascriptのUTFコードからUTF8文字列を作成する
- 26. アルファベット以外の文字で文字列を分割する
- 27. PHP以外の文字を文字列から削除するには?
- 28. ウェブサイトがcp1251で開き、文字セットがUTF8に設定されます
- 29. utf8文字によるイオンの問題
- 30. 文字列内の文字以外の文字をすべて削除する
は、あなたが苦労これをやっています。あなたは何とかそれをプログラム的にやる必要があります。 – leppie
まず*プログラミング言語*、環境、コンテキストを定義します。これは、あなたが/ on/inで作業しているシステムによって非常に異なります。 – deceze
なぜこの質問のDOWNVOTE? – swapneel