2014-09-03 6 views
0

나는 이미 게시물이 있다는 것을 알고있다 : Classic ASP - How to convert a UTF-8 string to UCS-2?클래식 ASP - UTF-8 문자열을 UTF-16으로 변환하는 방법은 무엇입니까?

하지만 다른 상황.
UTF-8을 UCS-2BE로 변환하고 싶습니다.
예를 들어 UTF-8 "Мухтарам Мизоч"의이 텍스트는 "CEB0 @ 0 < 87> G"로 변환됩니다.

예를 들어 PHP에서는 준비 기능을 사용할 수 있습니다. iconv("utf-8","ucs-2be","Мухтарам Мизоч");
그러나 고전적인 ASP에서는 해결책을 찾을 수 없습니다.
이 솔루션은 Kannel을 통해 유니 코드 SMS 텍스트를 보내야합니다.

+0

OP가 SMS 공급자에게 보내려고했던 것처럼이 답변을보십시오 - [asp-8을 고전 ASP에서 iso-8859-1로 변환하라는 응답] (http://stackoverflow.com/a/17680939/692942). – Lankymart

+0

차이점은 'UTF-8'로 전달하고 'UTF-16'을 출력하고 싶습니다 ('UCS-2'대신). 과정이 동일합니다. – Lankymart

+0

Kannel SMS Gateway에 익숙하지 않아서이 글을 더 자세히 살펴 보았습니다. 어떤 버전을 사용하고 있습니까? [user guide] (http://www.kannel.org/download/1.4.3/userguide-1.4.3/userguide.html)를 보면 [기본적으로'coding' 매개 변수는 7 비트로 설정되어 있습니다] (http://www.kannel.org/download/1.4.3/userguide-1.4.3/userguide.html#AEN4322)'sendsms' cgi 스크립트를 사용할 때'UTF-8 '을 보낼 수 있어야합니다. 질문을 업데이트하고'sendsms' CGI 스크립트에 메시지를 보내려고한다는 것을 보여주는 코드를 추가 할 수 있습니까? – Lankymart

답변

1

이 질문에 답하는 것이 아쉽지만, 많은 사람들이 ASP, PHP 또는 사용하는 언어로 인코딩 할 때 공통적 인 가정을 한 것처럼 느껴집니다. 웹 개발 인코딩에서

은 본질적으로 당신이

그냥 나를 비웃을 슬픈 만든 iconv reference 아래의 코멘트를보고 웹 페이지를 저장하는 데 사용하는 인코딩

소스에 연결되어 같은 시간에이 주제를 이해하지 못하는 많은 사람들이 있기 때문입니다. 예를 들어

테이크 당신의 PHP 조각

iconv("utf-8","ucs-2be","Мухтарам Мизоч"); 

이 페이지 작성자가 UTF-8 인코딩을 사용하여 파일을 저장

  • (대부분의 현대 편집자는 어떤 모양이 옵션이 다음에 해당하는 제공 작동합니다 또는 양식).
  • 는 클라이언트의 인터넷 브라우저는

    <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
    

    는 HTML의 메타 태그를 통해 또는 HTTP 내용 - 유형 헤더


을 지정하여 하나 UTF-8로 페이지를 처리해야한다 알고

Classic ASP의 관점에서 보면 필요한 것은 동일합니다.

  • 는 확인 페이지가이 종속되어있는 #include 파일을 포함, UTF-8 인코딩으로 저장되어 있는지 확인합니다.

  • 페이지의 맨 위에이 전처리 지침을 지정하여 IIS가 페이지가 UTF-8임을 지정하십시오 (첫 번째 줄이어야 함).

    <%@Language="VBScript" CodePage = 65001 %> 
    
  • 사용하는 인코딩을 브라우저에게

    <% 
    'Tell server to send all strings back to the client as UTF-8 
    'while also setting the charset in the HTTP Content Type header. 
    Responce.CodePage = 65001 
    Response.ContentType = "html/text" 
    %> 
    Response.Charset = "UTF-8" 
    

UPDATE :

어느 UCS-2 (UTF-16 LE) 또는 UCS-2BE (UTF-16 BE) 기본 ASP에서 지원되며 CodePage (1200 또는 1201) 중 하나를 지정하면됩니다.

ASP 0203 - Invalid CodePage Value

Kannel에 대해 조금 읽고 나면 당신은 당신이 SMS 게이트웨이로 보내는 문자 집합을 제어 할 수있는 것처럼 나타 납니까, 난 당신이 UTF-8을 사용하여 보내려고 추천 할 것입니다.

링크

  • Sending arabic SMS in kannel (이 질문은 Kannel에 자바를 사용하여 아랍어 SMS 전송에 대한하지만 정보는 관련).

  • Unicode on Windows XP (Windows XP를 대상으로하지만 코드 페이지 정보는 여전히 관련이 있습니다.)

+0

나는 제대로하고 있다고 생각하지만, UTF-16을 사용하고 있습니다. PHP에서 "CEB0 @ 0 <� 87> G"를 얻습니다. UTF-16과 UCS-2가 다를 수 있습니까? –

+1

아마도 UTF-16은'UCS-2BE' (빅 엔디안)를 대체하지 않으므로'UCS-2'를 대신합니다. IIS/Classic ASP에서 둘 중 어느 것도 지원되지 않습니다. 설정하려고하면 'ASP 0203 - 잘못된 코드 페이지 값'이 표시됩니다. 'UTF-8 '을 사용하여 보내도록 Kannel을 구성해야합니다. – Lankymart

+0

위대한 설명, @ Lankymart +1. – Paul

0

SMSC 섹션의 kannel.conf에 alt-charset = UCS-2 (또는 UCS-2BE)가 충분합니다. 이 charset에서 Kannel을 smsc로 보내십시오.