这里的第一篇文章/问题,首先感谢这个社区多年来一直是我的头号java资源(作为读者)。几乎没有什么我能在这里找到解决方案,直到这个。
所以,我得到了一个文件,我需要从中检索一些文本,我打开如下:
BufferedReader openFile = new BufferedReader(new InputStreamReader(new FileInputStream(getPath), "UTF-8"));
我使用的是一个非常简单的正则表达式模式:
Pattern getAnalyte = Pattern.compile("^(\\S+),");
此模式在我的场景中按预期工作,它偶尔会匹配包含非拉丁字符的字符串,通常是希腊语。到目前为止没问题。
当我需要在字符串中存储匹配的内容时,会出现问题。如果在其中有非拉丁字符,它将无法工作:
我尝试以下列所有形式存储正则表达式匹配的内容:
String getNameTry1 = getMatch1.group(1);
String getNameTry2 = new String(getMatch1.group(1).getBytes("UTF-8"));
String getNameTry3 = new String(getMatch1.group(1).getBytes(), "UTF-8");
没有人会工作,我总是从上面的任何一个字符串打印出来的胡言乱语 如果所有角色都是拉丁语(和数字),那么一切当然都很棒并且符合预期。 我已经没有想法了 - 我错过了什么,或者根本不应该工作?
非常感谢提前!
编辑2016年12月15日:我不是故意在一个月之后无耻地提出我的问题+之后,虽然好......这就是我想要做的事情,所以如果不是这样,请接受我的借口可以接受的。无论如何我只会做一次。 非常感谢你的再次关注,请至少让我知道,如果出于某种原因,这是一个糟糕的问题,以便我放弃坚持。虽然任何人都可能遇到......但它看起来很普遍。