# 短信计费编码预检

本系统目前仅支持 GSM7 和 UCS2 两种短信字符编码，说明如下：

| 字符集    |  单条字符长度  | 长短信每条字符长度 | 说明 |
|----------|-------|----------------|----------------------------------------|
| GSM7     | 160 | 153        |适用由26个英文字母组成的语言，如英文，印尼语等|
| UCS2     | 70 | 67          |适用除GSM7外的语言，如西语，日语，汉语等|

__特别说明__

1. “^“，”~“，”\“, "{", "}", "\[", "\]", "|", "€"; 这些字符使用 GSM7 编码时占用两个字符长度
2. 对于HTTP接口，长短信按原文提交，不需要分条后提交
3. 为保证终端设备收到是整条长短信，系统需要使用UDH标识每条短信，因而：
   
   长短信每条长度 = 单条字符长度- UDH标识


### 短信内容编码检查接口

#### 接口说明
通过该接口可以检查当前内容使用的字符集 和计费条数

#### 请求URL
```
https://{domain}/sms/charset?spid=xx&pwd=xx&sm=xx&timestamp=xx
```

#### 请求方法
GET

#### 参数说明

| 字段      | 类型   | 名称        | 说明                                     |
|----------|-------|------------|------------------------------------------|
| spid     | string | 接口账号     |                                          |
| pwd      | string | 加密后密码   | [接口说明3](/books/message-cn-api/page/4f6ff "接口说明") |
| sm       | string | 送检内容     | 需转换为16进制码（Hex） [附录3](/books/message-cn-api/page/java16#3)   |
| timestamp | string | 当前Unix timestamp（秒） | 例： 1601028870                |

#### 响应
```json
{
    "code": 0,
    "msg": "Success",
    "data": {
        "charset": "UCS2"
        "detail": "Content billed as 2 messages. Charset: UCS2, 70 chars/msg.",
        "parts": 2, 
        "single": 70
    }
}
```

__问题排查:如果短信内容都是英文字母但是返回UCS2,建议删除所有空格再重新输入后重试，如还有问题请及时联系我们__

#### 响应字段说明

1. charset 当前内容使用字符集合，GSM7/UCS2
2. parts   当前内容计费条数
3. single  单条计费长度(含UDH)