Android 앱에서받는 RSS 피드가 있습니다. 아이디어는 RSS 업데이트를 받고 보여주는 것만으로 간단합니다. 나는 올바른 말만 보여주는 것 외에는 모든 것을 관리했다. 문제는 데이터가 다른 언어로 쓰여지고 앱이 영어로되어 있다는 것입니다. 예 :응용 프로그램의 언어로 된 언어
9시 5분 KAMIONDŽIJE
20시 5분 Doček naših olimpijaca ispred Skupštine의 grada
과 같은 것들이 .. 당신은 그 Z, C, š 문자가 .. 그들은 다른로 표시됩니다 참조 알 수없는 - 투 - 날 언어 .. 아무도 어떻게이 문제를 해결할 수 있습니다 .. 난 그냥 그것이 RSS의 XML 파일에 쓰여진대로, 어쨌든 변경되고 싶어요.
이 내 완벽한 파서 클래스입니다 :
public class XMLParser {
// constructor
public XMLParser() {
}
/**
* Getting XML from URL making HTTP request
* @param url string
* */
public String getXmlFromUrl(String url) {
String xml = null;
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
xml = EntityUtils.toString(httpEntity);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// return XML
return xml;
}
/**
* Getting XML DOM element
* @param XML string
* */
public Document getDomElement(String xml){
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setCoalescing(true);
dbf.setNamespaceAware(true);
try {
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xml));
doc = db.parse(is);
} catch (ParserConfigurationException e) {
Log.e("Error: ", e.getMessage());
return null;
} catch (SAXException e) {
Log.e("Error: ", e.getMessage());
return null;
} catch (IOException e) {
Log.e("Error: ", e.getMessage());
return null;
}
return doc;
}
/** Getting node value
* @param elem element
*/
public final String getElementValue(Node elem) {
Node child;
if(elem != null){
if (elem.hasChildNodes()){
for(child = elem.getFirstChild(); child != null; child = child.getNextSibling()){
//if(child.getNodeType() == Node.TEXT_NODE ){
if(child.getNodeType() == Node.TEXT_NODE || child.getNodeType() == Node.CDATA_SECTION_NODE){
return child.getNodeValue();
}
}
}
}
return "";
//return elem.getTextContent();
}
/**
* Getting node value
* @param Element node
* @param key string
* */
public String getValue(Element item, String str) {
NodeList n = item.getElementsByTagName(str);
return this.getElementValue(n.item(0));
}
public String getValue2(Element item, String str){
//NodeList n = item.getElementsByTagNameNS("http://purl.org/rss/1.0/modules/content/", str);
return item.getTextContent();
}
}
가 어떻게이 UTF-8로 해석되는 것을 확인할 수 있습니다
이 시도? .. 나는 그 말이 무슨 뜻인지 알고, 그들은 고국의 말 (세르비아)이지만, 나는 단지 그들이 응용 프로그램에서 바로 보여주고 싶습니다. – Igx33
그렇다면 데이터를 읽는 곳의 코드를 보여줘야합니다. – Warpzit
좋아, 내가 편집 한 내 게시물이 .. 그것을 확인 getValue2는 <내용 : 코드>입니다주의 내용 : 인코딩> 사물과 getValue1 정상