Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的URL解析与网站数据编码_Java_Xml_Parsing_Url_Utf 8 - Fatal编程技术网

Java中的URL解析与网站数据编码

Java中的URL解析与网站数据编码,java,xml,parsing,url,utf-8,Java,Xml,Parsing,Url,Utf 8,我正在制作一个程序,给你一个城市的名字,并向你展示它发现的结果。 然后你选择一个结果,它会给用户他们选择的城市的纬度和经度 我遇到了编码问题。输出有时显示“城市”而不是“城市” 网页显示的内容: <searchresults timestamp="Thu, 23 Oct 14 17:12:39 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyr

我正在制作一个程序,给你一个城市的名字,并向你展示它发现的结果。 然后你选择一个结果,它会给用户他们选择的城市的纬度和经度

我遇到了编码问题。输出有时显示“城市”而不是“城市”

网页显示的内容:

<searchresults timestamp="Thu, 23 Oct 14 17:12:39 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring="moskva" polygon="false" exclude_place_ids="159021271,158732296,158806126,16815332,139019634,57818507,66411609,133125890,133109830,133105389,2629727735,5129421" more_url="http://nominatim.openstreetmap.org/search?format=xml&exclude_place_ids=159021271,158732296,158806126,16815332,139019634,57818507,66411609,133125890,133109830,133105389,2629727735,5129421&accept-language=en-US,en;q=0.5&q=moskva"><place place_id="159021271" osm_type="relation" osm_id="2555133" place_rank="16" boundingbox="55.4913076,55.9576988,37.290502,37.9674277" lat="55.7516335" lon="37.6187042" display_name="Moscow, Central Administrative Okrug, Moscow, Central Federal District, Russian Federation" class="place" type="city" importance="0.81231629038453" icon="http://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"/><place place_id="158732296" osm_type="relation" osm_id="102269" place_rank="8" boundingbox="55.1421745,56.0212238,36.8031012,37.9674277" lat="55.4792046" lon="37.3273304" display_name="Moscow, Central Federal District, Russian Federation" class="boundary" type="administrative" importance="0.81231629038453" icon="http://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png"/><place place_id="158806126" osm_type="relation" osm_id="389341" place_rank="16" boundingbox="55.0735908,55.8299355,35.2709194,38.849976" lat="55.7098009" lon="37.0536908" display_name="Москва, Moscow, Central Federal District, Russian Federation" class="waterway" type="river" importance="0.50926586919876"/><place place_id="16815332" osm_type="node" osm_id="1585841828" place_rank="19" boundingbox="41.9945,42.0345,60.037595,60.077595" lat="42.0145" lon="60.057595" display_name="Moskva, Amudaryo Tumani, Republic of Karakalpakstan, Uzbekistan" class="place" type="hamlet" importance="0.375" icon="http://nominatim.openstreetmap.org/images/mapicons/poi_place_village.p.20.png"/><place place_id="139019634" osm_type="way" osm_id="236406860" place_rank="17" boundingbox="48.0503237,48.0516342,24.2053204,24.2103535" lat="48.0511578" lon="24.2079606" display_name="Москва, Rakhiv, Рахівський район, Zakarpattia Oblast, 90600, Ukraine" class="waterway" type="river" importance="0.325"/><place place_id="57818507" osm_type="way" osm_id="23985851" place_rank="17" boundingbox="55.6094248,55.6177625,37.7975426,37.8262101" lat="55.6095218" lon="37.8089581" display_name="Москва, сельское поселение Развилковское, Ленинский район, Moscow Oblast, Central Federal District, Russian Federation" class="waterway" type="river" importance="0.325"/><place place_id="66411609" osm_type="way" osm_id="35916872" place_rank="17" boundingbox="55.4033937,55.4038942,38.5003179,38.5125733" lat="55.4033937" lon="38.5070172" display_name="Москва, сельское поселение Ашитковское, Voskresensky District, Moscow Oblast, Central Federal District, Russian Federation" class="waterway" type="river" importance="0.325"/><place place_id="133125890" osm_type="way" osm_id="221796745" place_rank="17" boundingbox="55.490488,55.4980542,35.3997149,35.4044686" lat="55.4932173" lon="35.4011963" display_name="Москва, сельское поселение Дровнинское, Можайский район, Moscow Oblast, Central Federal District, Russian Federation" class="waterway" type="stream" importance="0.325"/><place place_id="133109830" osm_type="way" osm_id="221796746" place_rank="17" boundingbox="55.4886176,55.4902089,35.4039231,35.4048013" lat="55.4894419" lon="35.4041347" display_name="Москва, сельское поселение Замошинское, Можайский район, Moscow Oblast, Central Federal District, Russian Federation" class="waterway" type="stream" importance="0.325"/><place place_id="5129421" osm_type="node" osm_id="581966682" place_rank="19" boundingbox="57.9469597,57.9869597,49.0880071,49.1280071" lat="57.9669597" lon="49.1080071" display_name="Москва, Верхошижемский район, Kirov Oblast, Volga Federal District, Russian Federation" class="place" type="village" importance="0.275" icon="http://nominatim.openstreetmap.org/images/mapicons/poi_place_village.p.20.png"/></searchresults>
如何更改它以UTF-8编码显示

(当我输入数字时,它给出了正确的经度和纬度。)


如果我输入一个应该显示的城市,比如说美国城市或其他城市,它会正确地显示它们。

好的,我算出来了

在eclipse中,默认编码是ISO-8859-1 现在,如果我想将其更改为UTF-8:

单击以突出显示项目名称。从顶部开始:“运行>运行配置>通用” 将编码更改为其他-UTF-8

这修正了????的输出?????将俄语(或ISO+8859-1未知的其他语言)转换为正常语言

package twitter;

import java.net.URL; 
import java.net.URLEncoder;
import java.util.Scanner;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

public class twitter {

public static void main(String[] args)  {
    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();

        Scanner linnaNimi = new Scanner(System.in);
        System.out.println("Select country");
        String linn = linnaNimi.nextLine();

        Document MAP = db.parse(new URL("http://nominatim.openstreetmap.org/search.php?q"
                + "=" + URLEncoder.encode(linn, "UTF-8") + "&format=xml").openStream(), "UTF-8");

        NodeList placeList = MAP.getElementsByTagName("place");
        for (int linnaCount = 0; linnaCount<placeList.getLength(); linnaCount++) {
            String kohaNimed = placeList.item(linnaCount).getAttributes().getNamedItem("display_name").getNodeValue();
            System.out.println(linnaCount + " = " + kohaNimed);
        }
        System.out.println("\nSelect number in front of desired city.");
        int linnaNumber = linnaNimi.nextInt();

        String lat = placeList.item(linnaNumber).getAttributes().getNamedItem("lat").getNodeValue();
        String lon = placeList.item(linnaNumber).getAttributes().getNamedItem("lon").getNodeValue();
        System.out.println("Latitude = " + lat);
        System.out.println("Longtitude = " + lon);

        linnaNimi.close();

    } catch (IOException e) {
        System.out.println("1");
    } catch (SAXException e) {
        System.out.println("2");
    } catch (ParserConfigurationException e) {
        System.out.println("3");
    }
}
}
0 = ??????, ??????????? ???????????????? ?????, ??????, ???, ??????
1 = ??????, ???, ??????
2 = ??????, ???, ??????
3 = ??????, ?????, ?????????? ?????, ???????????? ???????, 90600, ???????
4 = ??????, ???????? ????????? ???????????, ????????????? ?????, ?????????? ???????, ???, ??????
5 = ??????, ???????? ????????? ?????????????, ????????? ?????, ?????????? ???????, ???, ??????
6 = ??????, ???????? ????????? ???????????, ????????? ?????, ?????????? ???????, ???, ??????
7 = ??????, ???????? ????????? ???????????, ????????? ?????, ?????????? ???????, ???, ??????
8 = ??????, ?????????????? ?????, ????????? ???????, ??????????? ??????????? ?????, ??????
9 = ??????, Amudaryo Tumani, Qaraqalpaqstan Respublikasi, Uzbekistan