# **ENCODEURICOMPONENT**

编码 URI 参数。如下情况不会编码：

- ASCII 字母和数字
- ASCII 标点符号，包括：`-_.!~*'()`

请注意 ENCODEURICOMPONENT()函数与[ENCODEURI()](./ENCODEURI.md) 函数的区别之处，前者假定它的参数是 URI 的一部分（比如协议、主机名、路径或查询字符串），因此将转义用于分隔 URI 各个部分的标点符号，比如：`;/?:@&=+$,#`

## 语法{#grammar}

ENCODEURICOMPONENT(**str**)

- **str**：必需。一个含有URI组件或其他要编码的字符串，其他对象将转为字符串对象

**示例地址：** [ENCODEURICOMPONENT](https://demo.succbi.com/v5/bi/encodeuricomponent)

## 示例{#example}

1. `ENCODEURICOMPONENT("http://www.w3school.com.cn")` 参数含有数字字母，返回字符串`http%3A%2F%2Fwww.w3school.com.cn`，转义URI分隔符 `:`、`/`
2. `ENCODEURICOMPONENT("http://www.w3school.com.cn/My first/")` 参数含有数字字母和空格，返回字符串`http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F`，转义URI分隔符 `:`、`/`
3. `ENCODEURICOMPONENT("search=中文")` 参数含有中文，返回字符串`search%3D%E4%B8%AD%E6%96%87`
4. `ENCODEURICOMPONENT("/?:@&=+$#")` 参数含有`/?:@&=+$#`特殊字符，返回字符串`%2F%3F%3A%40%26%3D%2B%24%23`，转义用于分割URI的标点符号
5. `ENCODEURICOMPONENT("-_.!~*'()")` 参数含有ASCII标点符号，返回字符串`-_.!~*'()`
6. `ENCODEURICOMPONENT(A1)` 引用单元格，返回`A1`编码后的字符串
