Java字符串中的特殊字符处理

Java字符串中的特殊字符处理,java,php,json,Java,Php,Json,我必须从网站检索此[类型]字符串: {"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

我必须从网站检索此[类型]字符串:

{"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 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对象,没问题,但我有一些特殊字符,比如
\u00e0
,我不知道如何替换它们

我可以做几十个
replaceAll(“\u00e0”,“a”)但是,是否有任何预构建函数来执行此操作

我还可以编辑发送给我这个字符串的php页面,可能我忘记了任何
url\u 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部分。
我对所有这些编码都了如指掌,不太了解,只知道我不想在我的应用程序中看到
\u00e8
,而是“è”。)

在Java源代码中,转义的
“\u00e0”
实际上与Unicode字符U+00E0字母a-a\U GAUCHE的
“a”
相同。您可能会在JavaScript和JSON数据中发现这种转义。将其作为JSON对象读取应该会得到一个具有正确Unicode
的String对象

由于某种原因,如果您得到6个字符
\u00e0
,则应采取不同的措施

但是,您也可以继续,并使用Apache commons中的类将其转换回

String s = "\\u00e0"; // How one would represent the six chars \,u,0,0,e,0.
s = StringEscapeUtils.unescapeJava(s);

顺便说一句,
in.close()
不需要,因为
s.close()
也会在
中关闭

您不需要进行任何更换。JSON解析器应该为您处理这一切。顺便说一句,不清楚Java是从哪里来的……php用这个字符串为我在android应用程序中显示的文章创建网页。Java部分是处理这个字符串并在我的应用程序中正确显示它。嗯,\u00e0是字符的Unicode符号。我想你在某个时候会遇到一些不匹配的情况。您必须进一步描述在每个应用程序层(包括db)使用的字符集,以及在什么时候您看到的是\u00e0而不是“小写字母a和grave”。@eduine:但是Java与您的问题有什么关系?现在还不清楚您是在请求PHP部分还是Java部分的帮助。如果是Java部分,为什么没有显示任何Java代码?您使用的是哪个库?RssJsonObject是什么?我对Gson
Map o=new Gson().fromJson(data,Map.class)没有任何问题(您可以使用您的类而不是映射)。