# getrange

### 1. 基本語法

#### getrang&#x65;**(`key` , `start`, `end`, `callback`)**&#x20;

回&#x50B3;**`key`**&#x5C0D;應字符串的**截取**內容，字符串的截取範圍由 **`start`** 和 **`end`** 兩個偏移量决定(包括 **`start`** 和 **`end`** 在内)。

### 2. 範例

#### (1) 英數字的字符串擷取

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.set('mykey', 'this is aiii console');
client.getrange('mykey', 0, 3, redis.print); 
```
{% endtab %}
{% endtabs %}

| index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | ... |
| ----- | - | - | - | - | - | - | - | --- |
| char  | t | h | i | s |   | i | s | ... |

{% tabs %}
{% tab title="Bash-TS" %}
```bash
Reply: this
```
{% endtab %}
{% endtabs %}

#### (2) 中文字符串擷取

{% hint style="warning" %}
注意一個UTF-8編碼的中文字符佔3個字節(Byte)，偏移量選擇不當則會出現亂碼。
{% endhint %}

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.set('mykey', '這裡是Aiii');
client.getrange('mykey', 0, 3, redis.print); 
```
{% endtab %}
{% endtabs %}

| index      | 0     | 1     | 2    | 3     | 4     | 5    | ... |
| ---------- | ----- | ----- | ---- | ----- | ----- | ---- | --- |
| UTF-8(HEX) | 0xe9  | 0x80  | 0x99 | 0xe8  | 0xa3  | 0xa1 | ... |
| char       |       |       | 這    |       |       | 裡    | ... |

{% tabs %}
{% tab title="Bash-TS" %}
```bash
Reply: 這�
```
{% endtab %}
{% endtabs %}

**Tag : `substring`** **`slice`** **`extract`**
