我正在开发一个解决方案,需要将字符串编码为utf-8格式,这个字符串只是我使用BluetoothAdapter.getDefaultAdapter().name
读取的设备名称。
对于其中一个示例,我得到了一个字符串ABC-&
,对其进行编码后返回了ABC-%EF%BC%86
而不是ABC-%26
。在进一步调试之前,这很奇怪,但有助于确定&和&
之间存在差异,第二个字符无法像预期的那样编码。
&和&是不同的。
已尝试使用URLEncoder.encode(input, "utf-8")
和Uri.encode(input, "utf-8")
进行编码,但都没有起作用。
这只是一个示例,可能还有其他看起来与实际字符相同但无法正确编码的字符。现在的问题是:
- 为什么会出现这种差异,毕竟它只是使用标准SDK API从设备读取数据。
- 如何解决此问题。查找并替换为实际字符可能是一种方法,但范围有限,可能会有其他未知字符。
有什么建议!