Java不可读的字符串

标签 java string

我制作了一个 Java 套接字监听器,它监听端口 80。它基本上做的是收集它在端口 80 上监听的数据并将其存储在一个临时字符串中,然后用于进一步的操作(类型转换等全部)。现在的基本问题是来自端口 80 的数据有不可读的部分(如 @ [ Qô — z ‡ )。现在我将它存储在一个字符串中,当我打印字符串时,它只打印可以理解的可读部分,但令我困惑的是,当我打印字符串的长度时,它只打印可读部分的长度.所以我想知道我将不可读的字符串部分存储在字符串中的方法是否可以接受以对它们进行进一步的操作。如果没有,我还想要一些关于如何存储此类传入数据的指示。

问候 p1nG

最佳答案

这里有些东西没有意义。如果您将数据的“不可读”部分存储在字符串中,它反射(reflect)在字符串的长度中。

i want to know if my approach of storing unreadable string parts in a string is acceptable to enable further operations on them. If not, I would also like some pointers as to how I could store such incoming data.

这取决于数据不可读的原因。

  • 一种可能是远程系统正在以某种意外的字符集或编码发送数据。例如,如果它发送的是 Latin-1 而您希望使用 UTF-8(反之亦然),文本的某些部分可能无法阅读。解决方案是找出远程系统发送的字符集和编码,并在转换为 Java 字符时使用正确的 Java 字符集名称。

  • 另一种可能性是某些数据是二进制数据。如果是这样,您应该根据远程系统使用的应用程序协议(protocol)将文本与二进制数据分开。

  • 最后,不可读的内容可能是由线路噪音或类似原因引起的。如果是这种情况,您可能应该保持原样。

另一种方法是使用字节数组(或类似的东西)而不是字符串来保存数据。当您不确定字符集和编码时尝试将字节转换为字符的问题是转换可能有损。通过存储原始字节,您的应用程序至少有可能在以后正确处理……当您弄清楚正确的转换是什么时。

关于Java不可读的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099006/

相关文章:

java - 使用jmeter作为自动化工具向站点提交数据

java - XWPFTableRow 添加具有当前样式的新行?

java - 简单的 Java 日期计算

JavaScript split() join() 仅适用于精确短语

java - 在java中将字母数字字符串转换为字节?

java - 用参数/标记替换正则表达式字符串

java - 垃圾收集器何时应收集 JavaFX 选项卡?

java - 使用 android studio 在应用程序中流式传输实时摄像头信息

C - 获取目录路径

string - Delphi:字符串网格的自动滚动