>

SMS Gateway 사용 http API는 유니 코드 텍스트를 보내는 동안 제대로 작동합니다.

नमस्ते 를위한 유니 코드 :

%26%232344%3B%26%232350%3B%26%232360%3B%26%232381%3B%26%232340%3B%26%232375%3B

브라우저에서 SMS 게이트웨이가 제공하는 API 아래에서이 유니 코드를 보내는 경우

http://msdgweb.mgov.gov.in/esms/sendsmsrequest?username=*****&password=****&smsservicetype=unicodemsg&content=%26%232344%3B%26%232350%3B%26%232360%3B%26%232381%3B%26%232340%3B%26%232375%3B&mobileno=*****&senderid=****

전화로받은 텍스트는 : नमस्ते :

Java에서 동일한 API를 사용하는 동안 UTF-8 유니 코드로 시도했지만 텍스트는 %26%232344%3B%26%232350%3B%26%232360%3B%26%232381%3B%26%232340%3B%26%232375%3B 와 동일합니다. .

응용 프로그램 코드쪽에 뭔가 빠졌습니까?


  • 답변 # 1

    String text = "नमस्ते";
    
    

    텍스트가 HTML 엔터티로 번역 된 방법 :

    नमस्ते
    
    

    이것은 HTML 형식이 UTF-8 (유니 코드)을 허용한다고 명시하지 않은 서버에 게시 될 때 발생할 수 있습니다. 그런 다음 브라우저가 입력 필드를 변환합니다. 또한 다음과 같은 형태로 설명하십시오 :

    <form action="..." accept-charset="UTF-8">
    
    
    이 문자열은 & 로 URL 인코딩되었습니다.   %2B 로  등.

    HTML 엔터티를 다시 변환하기위한 패치 ( &#1234; ) ) Apache common을 사용하십시오 :

    s = StringEscapeUtils.unescapeHTML(s);
    
    

    또는 자신을 전환하십시오 :

    String convertHtmlEntities(String s) {
         Pattern pattern = Pattern.compile("\\&#(\\d{1,7});");
         Matcher m = patter.matcher(s);
         StringBuffer sb = new StringBuffer();
         while (m.find()) {
             int cp = Integer.parseInt(m.group(1));
             String ch = new String(new int[] { cp }, 0, 1);
             m.appendReplacement(sb, ch);
         }
         m.appendTail(sb);
         return sb.toString();
    }
    
    

  • 이전 matlab - 컬러 맵의 일부를 흐리게 처리
  • 다음 android - Retrofit2를 사용하여 원시 데이터를 Python 스크립트로 보내는 방법