【问题标题】:Remove ASCII Question Mark删除 ASCII 问号
【发布时间】:2015-05-14 06:57:51
【问题描述】:

我从另一个应用程序传递了以下字符串。

2�4�9�

(2�4�9�)

我想从上面的字符串中删除问号 ascii 字符。

我该怎么做?

【问题讨论】:

  • 这些不是问号,而是替代无法用 ASCII 表示的 Unicode 字符。修复生成此字符串的代码。
  • @Tichodroma 我从一个我没有任何控制权的应用程序接收字符串。
  • 我担心我这种情况你不会收到任何有用的数据。现在替代品所在的地方一定有什么有意义的东西。这将丢失,您的数据将被损坏。修复源。
  • ASCII 字符的范围是 0-127。此字符位于代码点 65533 处,远远超出 ASCII 范围。
  • 您如何从其他应用程序接收此字符串?您是否从字节数组中进行了任何解码?代码是最好的。

标签: java ascii


【解决方案1】:

据此Unicode code table�(或\ufffd字符...。

您可以使用以下命令从字符串中删除此 Unicode 字符:

str = str.replaceAll("�", "");

但你真的应该尝试理解为什么他们在那里。

【讨论】:

  • 如果我尝试这个,那么我可以删除不需要的字符。 str.replaceAll("�",""); str.replaceAll("\ufffd", ""); 不起作用。
  • @user75ponic :我无法测试(无法访问我的开发箱)。帖子编辑
【解决方案2】:
string.replaceAll("\u0000.*","").replaceAll("[^a-zA-Z0-9 ]", "");

将删除字符串变量中的空格和标点符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    相关资源
    最近更新 更多