Java GUID是否可以包含反斜杠(\)?

Java GUID是否可以包含反斜杠(\)?,java,Java,我想知道GUID是否可能包含反斜杠(\) 我还没有见过这样的案例,但我只是想知道 我正在使用Java。小说明:您看到的是对UUID的toString()调用,它将128位转换为更具可读性的内容。该人类可读部分仅由abcdefABCDEF1234567890-可能的字符组成 小说明:您看到的是对UUID的toString()调用,它将128位转换为更具可读性的内容。该人类可读部分仅由abcdefABCDEF1234567890-可能的字符组成 关于UUID的RFC 其中规定如下: 每个字段都被视为

我想知道
GUID
是否可能包含反斜杠(
\

我还没有见过这样的案例,但我只是想知道


我正在使用Java。

小说明:您看到的是对
UUID
toString()
调用,它将
128位
转换为更具可读性的内容。该人类可读部分仅由
abcdefABCDEF1234567890-
可能的字符组成

小说明:您看到的是对
UUID
toString()
调用,它将
128位
转换为更具可读性的内容。该人类可读部分仅由
abcdefABCDEF1234567890-
可能的字符组成

关于UUID的RFC

其中规定如下:

每个字段都被视为一个整数,并将其值打印为一个整数 具有最高有效值的零填充十六进制数字字符串 数字第一。十六进制值“a”到“f”输出为 小写字符和对输入不区分大小写。UUID字符串表示的形式定义如下 由以下ABNF[7]提供:

  UUID                   = time-low "-" time-mid "-"
                           time-high-and-version "-"
                           clock-seq-and-reserved
                           clock-seq-low "-" node
  time-low               = 4hexOctet
  time-mid               = 2hexOctet
  time-high-and-version  = 2hexOctet
  clock-seq-and-reserved = hexOctet
  clock-seq-low          = hexOctet
  node                   = 6hexOctet
  hexOctet               = hexDigit hexDigit
  hexDigit =
        "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
        "a" / "b" / "c" / "d" / "e" / "f" /
        "A" / "B" / "C" / "D" / "E" / "F"
以下是UUID的字符串表示形式的示例 作为瓮:

urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6

然后不允许使用
\

与RFC关于UUID

其中规定如下:

每个字段都被视为一个整数,并将其值打印为一个整数 具有最高有效值的零填充十六进制数字字符串 数字第一。十六进制值“a”到“f”输出为 小写字符和对输入不区分大小写。UUID字符串表示的形式定义如下 由以下ABNF[7]提供:

  UUID                   = time-low "-" time-mid "-"
                           time-high-and-version "-"
                           clock-seq-and-reserved
                           clock-seq-low "-" node
  time-low               = 4hexOctet
  time-mid               = 2hexOctet
  time-high-and-version  = 2hexOctet
  clock-seq-and-reserved = hexOctet
  clock-seq-low          = hexOctet
  node                   = 6hexOctet
  hexOctet               = hexDigit hexDigit
  hexDigit =
        "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
        "a" / "b" / "c" / "d" / "e" / "f" /
        "A" / "B" / "C" / "D" / "E" / "F"
以下是UUID的字符串表示形式的示例 作为瓮:

urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6


不允许使用
\

可能取决于GUID的编码方式。它只是一个非常大的数字,通常用十六进制编码,这意味着它不能包含特殊字符。您从哪里获得GUID?@talex通过使用这个
java.util.UUID.randomuid()
(它
java.util.UUID
应该实现)不允许反斜杠。你能告诉我们你是如何生成一个反斜杠的吗?@Henrik说得对-看错了问题。所以他应该是安全的:)可能取决于GUID的编码方式。它只是一个非常大的数字,通常用十六进制编码,这意味着它不能包含特殊字符。您从哪里获得GUID?@talex通过使用这个
java.util.UUID.randomuid()
(它
java.util.UUID
应该实现)不允许反斜杠。你能告诉我们你是如何生成一个反斜杠的吗?@Henrik说得对-看错了问题。所以他应该是安全的:)我可以在我的
UUID
值中看到等号
=
,所以这个符号不是特殊字符,对吗?@user3441151你能举个例子吗?如果AIKValue is
UTTxNJ9cPE4Kv1E08TSfXA==
code is
java.util.UUID.randomuid().toString()
,看起来像base64编码(
=
用于填充)。你能分享产生这个的完整代码吗?我可以在我的
UUID
中看到等号
=
,所以这个符号不是特殊字符,对吗?@user3441151你能举个例子吗?如果AIKValue is
UTTxNJ9cPE4Kv1E08TSfXA==
code is
java.util.UUID.randomuid().toString()
,看起来像base64编码(
=
用于填充)。你能分享产生这个的完整代码吗?