我一直在使用java.util.prefs.Preferences功能(在Windows计算机上的Java
8中)。它可以正常工作,在这里我可以将新密钥写入Windows注册表。因此,我使用Preferences.systemRoot()获取系统的Preferences对象,然后使用node()方法获取映射到Windows注册表中节点的Preferences对象。而且它正在创造一切。
我用于节点的密钥是所有大写字母(“ RBI”)中的字符串。当我查看Windows注册表中的节点时,它显示为“ / R / B / I”,名称中带有正斜杠。
我以为这很奇怪,所以我挖了一下,看来这是故意的。我发现提供在Windows环境上实现Preferences的类的类(java.util.prefs.WindowsPreferences),该方法用于构建发送到Windows注册表的值,它是toWindowsName的静态方法。在JavaDoc中…
/** * Converts value's or node's name to its Windows representathtml" target="_blank">ion * as a byte-encoded string. * Two encodings, simple and altBase64 are used. * <p> * <i>Simple</i> encoding is used, if java string does not contain * any characters less, than 0x0020, or greater, than 0x007f. * Simple encoding adds "/" character to capital letters, i.e. * "A" is encoded as "/A". Character '\' is encoded as '//', * '/' is encoded as '\'. * The constructed string is converted to byte array by truncating the * highest byte and adding the terminating <tt>null</tt> character. * <p> * <i>altBase64</i> encoding is used, if java string does contain at
least
* one character less, than 0x0020, or greater, than 0x007f.
* This encoding is marked by setting first two bytes of the
* Windows string to ‘/!’. The java name is then encoded using
* byteArrayToAltBase64() method from
* Base64 class.
*/
因此,对于大写字母,简单编码将添加一个正斜杠。
有人知道为什么这样做吗?我以为注册表可以处理区分大小写的值,但这似乎表明它不能?
我可以解决这个问题,我很好奇为什么要这么做。
当您感到好奇时,我发现了以下解释:
注册表项保留大小写,但不区分大小写。例如,如果您有钥匙“ Rbi”,则无法创建另一个名为“
RBi”的钥匙。案例已保存但被忽略。Sun区分大小写的解决方案是在密钥中添加斜线。
注册表值区分大小写(当然,也区分大小写)。我不认为Sun也打算将斜杠添加到值中,但不知何故,它就滑入了代码中。在我看来,这个错误已久未找到。发现该错误后,许多系统已经依赖于错误的实现,因此他们从不删除它来保持兼容性。
如果您不喜欢注册表值中的斜线,则可能对此实现感兴趣。
问题内容: 我正在将CSV文件导入MySQL数据库。可以通过支持文件路径中的正斜杠来实现。如果用户给出路径 MySQL不支持这种类型的路径模式。我想在路径中搜索反斜杠并将其替换为正斜杠,以实现以下目的: 怎么做? 问题答案: 在Java中,使用以下命令: 注意,这里不需要replace的正则表达式版本,即;仍会替换所有出现的搜索词,但会搜索 文字 字符串,而不是正则表达式匹配项。
输入: 产出: 问题: null
问题内容: 这样做的原因是“逃脱了”我。 JSON转义为正斜杠,因此哈希序列化为而不是。 为什么? 问题答案: JSON不需要您执行此操作,而是允许您执行此操作。它还允许您将“ \ u0061”用于“ A”,但这不是必需的。在将JSON嵌入标记中时允许帮助,该标记不允许内部字符串出现,如Seb指出的那样。 Microsoft的一些ASP.NET Ajax / JSON API使用此漏洞来添加额外的
问题内容: 我已经使用了很长时间了,到目前为止我还没有遇到任何问题。现在,我正在使用上传脚本,并且尝试在文件上传后返回一些JSON数据。 我有以下代码: 这给了我以下结果: 谁能告诉我为什么加斜杠? 更新 @Quentin说,事情是发生之间和与他的权利。 做一个给我以下结果: 这不是有效的JSON。它还添加,我不知道它来自哪里。 可能对我返回的数据有影响吗? 这是我的js脚本: 问题答案: 谁能告
问题内容: python中反斜杠b的用途是什么,我在python解释器中运行了 打印“ \” foo \ bar” ,并得到以下结果: 问题答案: 请参阅字符串文字文档: ASCII退格键(BS) 它产生一个 退格字符 。打印该字符时,终端会在第二秒上退格。
我有以下路径:,我想将其转换为: 我试图将上面的路径附加到这个路径:with但是当我将两个字符串附加在一起时,这是输出: 下面是有问题的代码: 由于斜杠的原因,附加的路径未被视为文件夹。有什么帮助吗? 编辑:只是澄清一下,完整路径(两个附加字符串)实际上是一个文件夹。