YStudio Y++

编码类(扩展类库)

Y++ / YStudio 开发文档 · 一点滴

URL 编解码HTML 实体字符集转换(GBK ↔ UTF-8 等)。类似 Qt 的百分号编码 + QTextCodec。对象可设默认编码,供 到Utf8 / 从Utf8 省略参数时使用。

支持库路径:扩展类库 → 编码类

Base64 / MD5 / SHA 等仍在基础库 · 加密,不在本类重复。


快速开始

函数 主窗口.创建完毕 () {
    编码类 c

    输出 (c.Url编码 ("a b"))              // a%20b
    输出 (c.Url解码 ("a%20b"))            // a b

    输出 (c.Html编码 ("<tag>\"x\""))      // &lt;tag&gt;&quot;x&quot;

    c.置默认编码 ("gbk")
    输出 (c.到Utf8 ("中文"))              // UTF-8 语义的宽文本结果
    输出 (c.从Utf8 ("…", "gbk"))          // 转到 GBK 语义

    输出 (c.转换 ("文本", "gbk", "utf-8"))
}

声明 编码类 c 时自动创建;默认编码名为 GBK


URL 编码 / 解码

  • Url编码:空格 → %20(查询串里有时用 +,见 查询串类到文本(真))。
  • Url解码:支持 %XX+ → 空格。
  • 中文按 UTF-8 字节做百分号编码。
编码类 c
文本 api = "https://x.com/q?" + c.Url编码 ("name=张三")

HTML 实体

方法 示例
Html编码 <&lt;"&quot;&&amp;
Html解码 还原 &lt; &gt; &quot; &#39; &amp;

仅覆盖常用实体,非完整 HTML 解析器。


字符集转换

支持的编码名(不区分大小写):

名称 说明
gbk / gb2312 / 936 简体中文(默认)
utf-8 / utf8 UTF-8
big5 / 950 繁体中文
unicode / utf16 UTF-16
方法 说明
置默认编码(名称) 设置默认来源/目标编码
到Utf8(内容, [来源编码=""]) 转到 UTF-8;省略来源=默认编码
从Utf8(内容, [目标编码=""]) 从 UTF-8 转出;省略目标=默认编码
转换(内容, 来源, 目标) 任意两种编码互转

转换失败时返回空文本,可用 取错误() 查看原因。


与查询串类 / 网址类的关系

需求 用谁
整段 a=1&b=2 解析、改键值 查询串类
单个值的 %编码 编码类 · Url编码
完整 URL 拆协议/主机/路径/查询 网址类

方法一览

方法 返回 说明
置默认编码(编码名) 逻辑 gbkutf-8
Url编码(内容) 文本 百分号编码
Url解码(内容) 文本 百分号解码
Html编码(内容) 文本 HTML 实体
Html解码(内容) 文本 实体还原
到Utf8(内容, [来源=""]) 文本 charset → UTF-8
从Utf8(内容, [目标=""]) 文本 UTF-8 → charset
转换(内容, 来源, 目标) 文本 任意互转
清空() 重置状态
取错误() 文本 最近错误

常见错误

  1. 混淆 Url编码 与 查询串.到文本 — 前者编单个字符串;后者编整段键值对并加 & 连接。
  2. GBK 文件当 UTF-8 读 — 读文件后若乱码,用 转换(内容, "gbk", "utf-8") 或先 置默认编码("gbk")到Utf8
  3. 期待 Base64 — 请用基础库 Base64编码 / Base64解码