2012-05-23 5 views
2

"http://bkwsu.org/thoughtText?lang=hi"링크를 통해 힌디어와 java에있는 '텍스트'를 추출한 json 데이터를 검색했습니다. 그런 다음이 hindi 텍스트를 fb 페이지에 게시하려고했습니다. 이제 문제는 fb 페이지에 데이터를 게시 할 때 일부 횡설수설을 표시하는 것입니다. 여기 내 코드는 다음과 같습니다 자바에서 힌디어 언어 처리하기

import java.util.*; 
import java.io.*; 
import com.restfb.*; 
import java.net.*; 
import com.restfb.json.*; 
import com.restfb.types.*; 
public class MurliPost 
{ 
    public static void main(String args[])throws Exception{ 
     String temp1="",temp = ""; 
     URL u=new URL("http://bkwsu.org/thoughtText?lang=hi"); 
     HttpURLConnection uc=(HttpURLConnection) u.openConnection(); 
     uc.setDoOutput(true); 
     uc.setDoInput(true); 
     uc.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.29 (KHTML, like Gecko) Chrome/12.0.733.0 Safari/534.29"); 
     uc.setRequestProperty("Connection","keep-alive"); 
     uc.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml"); 
     uc.setRequestProperty("Accept-Language","en-US,en;q=0.8"); 
     uc.setRequestProperty("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.3"); 
     uc.setRequestMethod("GET"); 
     uc.setInstanceFollowRedirects(false); 
     BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream())); 
     while ((temp=br.readLine())!=null){temp1+="\n"+temp;} 
     String murli=temp1.substring(temp1.indexOf("'text':'")+8,temp1.indexOf("',\n'topic':")); 
     murli=murli.replace("\\r\\n\\r\\n","\n\n"); 
     murli=murli.replace("\\r\\n","\n\n"); 
     murli=murli.replaceAll("[ \t]+", " "); 
     Date date=new Date(); 
     murli=String.valueOf(date.getDate())+"/"+String.valueOf(date.getMonth()+1)+"/"+String.valueOf(1990+date.getYear())+"\n\n"+murli; 
     System.out.println(murli); 
     DefaultFacebookClient facebookClient=new DefaultFacebookClient("your access token goes here"); 
     JsonObject j=facebookClient.fetchObject("me/accounts",JsonObject.class); 
     JsonArray acc=j.getJsonArray("data"); 
     for(int i=0;i<acc.length();i++) 
      if(acc.getJsonObject(i).getString("name").equals("Brahma Kumaris")) { 
       DefaultFacebookClient facebookClient1=new DefaultFacebookClient(acc.getJsonObject(i).getString("access_token")); 
       String posturl=acc.getJsonObject(i).getString("id")+"/feed"; 
       FacebookType publishMessageResponse=facebookClient1.publish(posturl,FacebookType.class,Parameter.with("message",murli)); 
       System.out.println("success"); 
       break; 
      } 
    } 
} 

그래서 어떻게 자바에서이 문제를 어떻게 처리하나요?

답변

2

InputStreamReader를 인스턴스화 할 때 인코딩을 지정해야합니다. 그렇지 않으면 기본 시스템 인코딩이 GET 요청의 출력에 적용되고 응답에 반환 된 인코딩과 일치하지 않으면 문자가 손상됩니다.

관련 문제