[英]Special characters handling in Java String
我必须从网站检索此[类型]字符串:
{"title":"En Loz\u00e8re, les entreprises sont incit\u00e9es \u00e0 passer \u00e0 la fibre","author":"Fran\u00e7ois Le Gall","date":...
我想要一个这样的对象:
myObject{
String title = "En Lozère, les entreprises sont incitées à passer à la fibre";
String author = "François le Gall";
...
}
这是我在java中检索String的方式:
String myJsonString = "";
try{
URLConnection conn = new URL("http://www.ariase.com/webservices/getArticle.php?id=3019").openConnection();
InputStream in = conn.getInputStream();
Scanner s = new Scanner(in);
s.useDelimiter("\\A");
while (s.hasNext())
myJsonString += s.next();
s.close();
in.close();
} catch(SocketTimeoutException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); }
RssJsonObject myParsedJsonObject = RssJsonObject.parseJson(myJsonString);
这是我必须解析的Json对象,没问题,但是我有\à
这样的特殊字符,我不知道该如何替换...
我可以做几十个replaceAll("\à", "à");
但是,是否有任何预构建功能可以做到这一点?
我还可以编辑php页面,并将该字符串发送给我,也许我忘记了任何url_encode
或其他内容,但是我对php的了解很差。
这是我的php代码:
$query = "SELECT * FROM SITE.rssitem WHERE NEWSID = '".$newsId."'";
$eligibiliteDB->request($query);
$answer = $eligibiliteDB->first();
$tab = array(
"title" => strip_tags($answer['TITLE']),
"author" => strip_tags($answer['AUTHOR']),
"date" => strip_tags($answer['DATE']),
"img" => strip_tags("http://www.ariase.com/fr/news".$answer['MINIATURE']),
"description" => strip_tags($answer['DESCRIPTION']),
"content" => strip_tags($answer['FULLDESCRIPTION'].' '.$answer['CONCLUSION'])
);
echo json_encode($tab);
编辑:
我上面的Java代码。
我不知道我的错误是来自Java还是PHP。 而且我对所有这些编码东西都很了解,对它不太了解,只知道我不想在应用程序中看到\è
而是“è”! :)
在Java源代码中,对于Unicode字符U + 00E0 LETTER A-A_GAUCHE,转义的"\à"
实际上与"à"
相同。 您可能还会在JavaScript和JSON数据中找到此类转义符。 将其读取为JSON对象应该为String对象提供正确的à
。
如果由于某种原因您得到6个字符\à
则应该以其他方式进行处理。
但是,您也可以继续,并使用来自Apache commons的StringEscapeUtils类将其转换回去。
String s = "\\u00e0"; // How one would represent the six chars \,u,0,0,e,0.
s = StringEscapeUtils.unescapeJava(s);
in.close()
BTW in.close()
,因为s.close()
也会in
关闭。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.