Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding 试图理解GSM-7和GSM-8_Encoding_Sms_Gsm - Fatal编程技术网

Encoding 试图理解GSM-7和GSM-8

Encoding 试图理解GSM-7和GSM-8,encoding,sms,gsm,Encoding,Sms,Gsm,我正在研究短信,我想了解短信编码集。我读过,但这些场景对我来说似乎很疯狂: GSM-7浪费了宝贵的空间,包括希腊字母 GSM-7包括但不包括 GSM-8可以定义128个字符,但只能定义12个:这是对空间的巨大浪费 他们本可以轻松地为所有拉丁语言安装所有有用的字符,至少在GSM-8中是这样,但他们决定浪费大量空间,因此,您通常需要使用UCS-2,这意味着许多人需要拆分文本。例如,如果你在法语中使用“ç”,你需要使用UCS-2;如果你在美国使用常用的西班牙语字母ó,你也需要UCS-2 有谁能恢复我对

我正在研究短信,我想了解短信编码集。我读过,但这些场景对我来说似乎很疯狂:

  • GSM-7浪费了宝贵的空间,包括希腊字母
  • GSM-7包括但不包括
  • GSM-8可以定义128个字符,但只能定义12个:这是对空间的巨大浪费 他们本可以轻松地为所有拉丁语言安装所有有用的字符,至少在GSM-8中是这样,但他们决定浪费大量空间,因此,您通常需要使用UCS-2,这意味着许多人需要拆分文本。例如,如果你在法语中使用“ç”,你需要使用UCS-2;如果你在美国使用常用的西班牙语字母ó,你也需要UCS-2


    有谁能恢复我对发明这个的人的信心,给我一个很好的理由解释为什么这些场景是这样的吗?

    这都是历史留下的。首先是寻呼设备上的gsm7字母表。最多160个字符。然后GSM被发明了,并将相同的协议用于SMS消息。后来他们扩展了GSM7表(使用特殊的ESC字符查看第二个表)。这还不够,所以在手机普及到全世界后,他们使用了GSM8。UCS2也被用于支持其他语言。这一切都是因为历史上的向后兼容性。新的短信息将通过SIP,这是更开放的。我明白所有这一切,我不明白的是字符的选择,为什么大多数GSM8是空的…你说空是什么意思?GSM8是未加工的,255个字符,如何处理取决于手机。特定于语言的表在UCS-2和GSM7中有移位,尽管在这种情况下,如果您的意思是这样的话,并非所有语言都定义正确。GSM8允许定义128个字符,但它只定义10-12个。他们可以很容易地用所有拉丁字母字符(西班牙语、法语、葡萄牙语、德语,甚至可能是波兰语等)填充该空间,这样这些语言就几乎不必在UCS2中编码文本,并且可以发送限制为140个字符而不是70个字符的文本。你混合了GSM7和GSM8。默认情况下,GSM7的扩展表中只包含几个字符。GSM8有256个字符。除此之外,您还可以使用UTF-8,大多数手机都可以使用UTF-8。例如,只有两个字节,比如0xc3,0x9f表示ß。它仍然是8比特(而不是UCS-2的16比特)。所以ßa是0xc3,0x9f,0x41(仅3个字节)