【问题标题】:Does readLine() put extra char to resulting string?readLine() 是否在结果字符串中添加了额外的字符?
【发布时间】:2014-08-23 15:07:32
【问题描述】:

这是从文件中读取的代码:

        String line, Matn;
    line = br.readLine();
    Matn = "s"+line.substring(2);
    while (true){
        line = br.readLine();
        if (line==null) break;
        Matn += " "+line;
    }

第一行结果是这样的

select '10','استان تهران' UNION

这里在select语句之前读取的第一行的位置0有一个char,看不到,但在“marking condition : shify down left + right arrow”中你可以感觉到有一个非空格字符。 然后使用此字符串作为 SQL 语句的提要导致失败。 我是在犯错还是这是真的? 为了解决这个问题,我修剪了 2 个位置并添加了丢失的“s”,所以它工作正常。 欢迎您的帮助。

【问题讨论】:

  • 即使在这个测试中你也能感觉到隐藏的字符.... !!!!
  • 您是在读取文件吗?也许是 UTF-8 BOM。
  • 是的,很可能是 BOM
  • UTF-8 BOM:传播病毒的坏主意。

标签: android string sqlite readline


【解决方案1】:

是的,对于 UTF-8 兼容性,它将 "\u200F" 添加到文件的开头。 可以做.replace("\u200F",""),或者使用substring(1, text.length()-1)跳过它。

【讨论】:

  • 如果您自己找到了答案,请接受它,以便人们将来参考。 :)
猜你喜欢
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
相关资源
最近更新 更多