5

Clickatell を使用した経験のある方もいらっしゃると思います。私の問題は、フランス語またはスペイン語の文字 (URL エンコード) を使用して http api を介してメッセージを送信すると、それら (文字) が電話に表示されないことです。

私はこのガイドを使用しています: http:// support.clickatell.com /faq.php?mode=view_entry&kbid=121&kbcat=26

私はすでにいくつかの電話でそれをテストしましたが、それらはすべて同じことを示しています:「a va! mon l ve mi ni a?」「ça va! mon élève mi niña?」のはずです。(またはかなり似たもの)

残念ながら、彼らのサポートは(私にとっては)あまり具体的ではなく、今は少し混乱しています。これが私が得たものです:

参照してください: http://www.dreamfabric.com/sms/default_alphabet.html

その後、上記の基準に従って text= パラメータを URL エンコードして、フランス語の文字がハンドセットで正しく表示されるようにしてください。

4

4 に答える 4

7

基本的に SMS では、テキストを送信するための 2 つのオプションがあります。GSM 03.38で指定されている「デフォルトのアルファベット」を使用するか、Unicode を使用します。

デフォルトのアルファベットは、この地域の言語に受け入れられるサブセットを提供するため、ほとんどの西側諸国で SMS を送信する通常の方法です。これは 7 ビットのエンコードであるため、使用可能な 140 バイトに最大 160 文字を収めることができます。このエンコーディングでは複数のテーブルが使用されるため、「最大」です。文字の前にエスケープ (0x1B) を付けることで、拡張テーブル内の文字にアクセスできます。したがって、主に最初のテーブルを使用している場合は、7 ビット エンコーディングが場所を節約します。

もう 1 つのオプションは、Unicode (具体的には UCS-2) を使用することです。明らかに、これによりはるかに広い文字セットが得られますが、スペースが犠牲になります。各文字に 2 バイトを使用すると、このエンコーディングでは 70 文字の制限が残ります。

私は Clickatell を使ったことがないので、それについて話すことはできませんが、一部のプロバイダーは、ISO-8859-1 (「latin-1」) などの一般的なエンコーディングを使用できる抽象 API を提供しています。ある時点で、これはまだ 7 ビットのデフォルトのアルファベットに再コード化されています。いくつかのマッピング ルールが適用される場合もあります。たとえば、'é' の代わりに 'è' を使用します。前者はほとんど同じように見え、デフォルトのアルファベットであるためです。もちろん、コンテンツを完全に制御したい場合は、GSM のデフォルトのアルファベットでエンコードされたテキストを送信できる API を使用する必要があります。

于 2010-11-30T23:32:00.200 に答える
2

ここにいくつかの回避策があります。「^」を含むすべての文字は、通常の文字に置き換えられます。

$message = 'éàçùêâôûîï';
$message = urlencode(utf8_decode($message));

受信した SMS は次のようになります。

éàcùeaouii
于 2013-11-05T11:10:51.450 に答える
0

Latin 1エンコーディングを使用することをお勧めします。100% ではないかもしれませんが、これが最も近いものです。 http://www.w3schools.com/PHP/func_string_htmlentities.asp

于 2010-11-29T15:58:58.417 に答える