Java url中%20和%2之间的差异
我正在开发的java应用程序正在发布一个url,url的某些部分如下所示:Java url中%20和%2之间的差异,java,url,web,Java,Url,Web,我正在开发的java应用程序正在发布一个url,url的某些部分如下所示: asset=travel%2Ccar%2Chouse%2Cbusiness URL中的%20和%2有什么不同吗?我知道%20表示空格,但当我看到%2时,我有点困惑。这个%表示转义字符。它是一个十六进制数,后面紧跟着两个字符。在您的示例中,它是%2C,是逗号的十六进制数。成为asset=travel、car、house、business的unscaped%2C是一个逗号,%20是一个空格。有很大的区别。两者都是十六进制,
asset=travel%2Ccar%2Chouse%2Cbusiness
URL中的%20和%2有什么不同吗?我知道%20表示空格,但当我看到%2时,我有点困惑。这个%表示转义字符。它是一个十六进制数,后面紧跟着两个字符。在您的示例中,它是
%2C
,是逗号的十六进制数。成为asset=travel、car、house、business的unscaped
%2C是一个逗号,%20是一个空格。有很大的区别。两者都是十六进制,但%20表示空格,%2C表示逗号。让我解释一下这个极好的答案:%2C
是逗号的十六进制ASCII键码;%20
是空格的ASCII键码。您可以在下表的相关Hx
列下看到它。另见
+----+-----+----+-----+----+-----+----+-----+
|Hx | Chr | Hx | Chr | Hx | Chr | Hx | Chr|
+----+-----+----+-----+----+-----+----+-----+
|00 | NUL | 20 | SPC | 40 |@60 ||
|01 | SOH | 21 |!|41 | A | 61 | A|
|02 | STX | 22 |“| 42 | B | 62 | B|
|03 | ETX | 23 | | | 43 | C | 63 | C|
|04 | EOT | 24 |$| 44 | D | 64 | D|
|05 | ENQ | 25 |%| 45 | E | 65 | E|
|06 | ACK | 26 |和| 46 | F | 66 | F|
|07 | BEL | 27 | | | 47 | G | 67 | G|
|08 | BS | 28 | | | 48 | H | 68 | H|
|09 | TAB | 29 | | | 49 | I | 69 | I|
|0A | LF | 2A |*| 4A | J | 6A | J|
|0B | VT | 2B |+4B | K | 6B | K|
|0C | FF | 2C |,| 4C | L | 6C | L|
|0D | CR | 2D |-4D | M | 6D | M|
|0E | SO | 2E |.| 4E | N | 6E | N|
|0F | SI | 2F |/| 4F | O | 6F | O|
|10 | DLE | 30 | 0 | 50 | P | 70 | P|
|11 | DC1 | 31 | 1 | 51 | Q | 71 | Q|
|12 | DC2 | 32 | 2 | 52 | R | 72 | R|
|13 | DC3 | 33 | 3 | 53 | S | 73 | S|
|14 | DC4 | 34 | 4 | 54 | T | 74 | T|
|15 | NAK | 35 | 5 | 55 | U | 75 | U|
|16 | SYN | 36 | 6 | 56 | V | 76 | V|
|17 | ETB | 37 | 7 | 57 | W | 77 | W|
|18 | CAN | 38 | 8 | 58 | X | 78 | X|
|19 | EM | 39 | 9 | 59 | Y | 79 | Y|
|1A | SUB | 3A |:| 5A | Z | 7A | Z|
|1B | ESC | 3B | | 5B |[| 7B |{|
|1C | FS | 3C |<| 5C | 7C ||
|1D | GS | 3D |=| 5D |]| 7D ||
|1E | RS | 3E |>5E | | 7E | ~|
|1F美国3F德国5F德国|
+----+-----+----+-----+----+-----+----+-----+
注意%2C
中的C
。它是%
后跟2个十六进制字符。在3秒钟内抢到了我的风头:p这很快:)我没有注意到大写字母C,谢谢:)%-编码可以用于二进制或字符数据。较新的标准指定UTF-8作为文本的字符编码,因此字节用于使用UTF-8编码的文本。这就是为什么%2C表示。您提到的ASCII(相对于UTF-8)与RFC 3986和HTML 5标准不一致。以前,字符编码未指定。现在,对于HTML,它是UTF-8。
+----+-----+----+-----+----+-----+----+-----+
| Hx | Chr | Hx | Chr | Hx | Chr | Hx | Chr |
+----+-----+----+-----+----+-----+----+-----+
| 00 | NUL | 20 | SPC | 40 | @ | 60 | ` |
| 01 | SOH | 21 | ! | 41 | A | 61 | a |
| 02 | STX | 22 | " | 42 | B | 62 | b |
| 03 | ETX | 23 | # | 43 | C | 63 | c |
| 04 | EOT | 24 | $ | 44 | D | 64 | d |
| 05 | ENQ | 25 | % | 45 | E | 65 | e |
| 06 | ACK | 26 | & | 46 | F | 66 | f |
| 07 | BEL | 27 | ' | 47 | G | 67 | g |
| 08 | BS | 28 | ( | 48 | H | 68 | h |
| 09 | TAB | 29 | ) | 49 | I | 69 | i |
| 0A | LF | 2A | * | 4A | J | 6A | j |
| 0B | VT | 2B | + | 4B | K | 6B | k |
| 0C | FF | 2C | , | 4C | L | 6C | l |
| 0D | CR | 2D | - | 4D | M | 6D | m |
| 0E | SO | 2E | . | 4E | N | 6E | n |
| 0F | SI | 2F | / | 4F | O | 6F | o |
| 10 | DLE | 30 | 0 | 50 | P | 70 | p |
| 11 | DC1 | 31 | 1 | 51 | Q | 71 | q |
| 12 | DC2 | 32 | 2 | 52 | R | 72 | r |
| 13 | DC3 | 33 | 3 | 53 | S | 73 | s |
| 14 | DC4 | 34 | 4 | 54 | T | 74 | t |
| 15 | NAK | 35 | 5 | 55 | U | 75 | u |
| 16 | SYN | 36 | 6 | 56 | V | 76 | v |
| 17 | ETB | 37 | 7 | 57 | W | 77 | w |
| 18 | CAN | 38 | 8 | 58 | X | 78 | x |
| 19 | EM | 39 | 9 | 59 | Y | 79 | y |
| 1A | SUB | 3A | : | 5A | Z | 7A | z |
| 1B | ESC | 3B | ; | 5B | [ | 7B | { |
| 1C | FS | 3C | < | 5C | \ | 7C | | |
| 1D | GS | 3D | = | 5D | ] | 7D | } |
| 1E | RS | 3E | > | 5E | ^ | 7E | ~ |
| 1F | US | 3F | ? | 5F | _ | 7F | DEL |
+----+-----+----+-----+----+-----+----+-----+