에서 솔루션 here 리테 이닝 코드를 발견했다. 나는 터키어를 사용한다. 나는 변환을 위해 아래의 코드를 사용한다. 나는 당신이 항구 수 있기를 바랍니다.
/**
* Function to handle UTF-8 Check and conversion
* @author Nuri Unver
*
*/
public function smstxtcode($data){
$mb_hex = '';
$utf = 0;
for($i = 0 ; $i<mb_strlen($data,'UTF-8') ; $i++){
$c = mb_substr($data,$i,1,'UTF-8');
$o = unpack('N',mb_convert_encoding($c,'UCS-4BE','UTF-8'));
$hx = sprintf('%04X',$o[1]);
$utf += intval(substr($hx,0,2));
$mb_hex .= $hx;
}
if ($utf>0)
{
$return=$mb_hex;
$utf=1;
}
else
{
$return=utf8_decode($data);
$utf=0;
}
return array($utf,$return);
}
이 기능을 메시지와 함께 호출합니다. 여러분이 얻게되는 응답은 메시지와 보낼 텍스트에 따라 유니 코드 또는 일반 텍스트를 보내는 것을 말합니다. 확장 문자가 없으면 문자를 저장하기 위해 unicode = 0 인 일반 텍스트로 보내기 만합니다. 메시지에 확장 문자가 포함되어 있으면 메시지를 16 진수로 변환하여 유니 코드로 보냅니다.
이 코드는 계산을 수행합니다. 자신의 코드를 구현하여 시스템에 포팅해야합니다. 데모를 위해 이것은 내가 Vtiger에 사용하는 코드는 데이터를 추출하고 메시지를 보내는 것입니다 :
/**
* Function to handle SMS Send operation
* @param <String> $message
* @param <Mixed> $toNumbers One or Array of numbers
*/
public function send($message, $toNumbers) {
if(!is_array($toNumbers)) {
$toNumbers = array($toNumbers);
}
$params = $this->prepareParameters();
$smsarray = $this->smstxtcode($message);
$params['text'] = $smsarray[1];
$params['unicode'] = $smsarray[0];
$params['to'] = implode(',', $toNumbers);
$serviceURL = $this->getServiceURL(self::SERVICE_SEND);
1가하는 Clickatell 문서가 어떤 인코딩을 지정 하는가 = 다음 HTTP API를 통해 보낼 때
이 메시지 텍스트
B)로 결과 문자열을 사용하여 유니 코드 매개 변수를 포함? 이는 언어/이동 통신사 및/또는 수신 전화에 따라 다를 수 있습니다. – deceze
나는 clickatell 문서의 특정 인코딩 세부 정보를 보지 못했습니다. 바로 지금 나는 다음에 무엇을 시도해야하는지에 대한 아이디어가 부족합니다. – pinaki