编码转换支持库

编码转换支持库 帮助手册20080902版 返回支持库手册 返回首页

本支持库在转换编码时使用 GNU libiconv 1.9.1版，支持现有绝大多数编码和字符集。

操作系统支持： Windows、Linux

命令类别：

编码转换

常量表

例程名称 | 下载 | 说明
编码转换 | 编码转换.e | 本程序用作演示编码转换支持库的使用方法。

适用版本，编码转换支持库 （1.0#0版）


编码转换

编码转换 类别 跳至：编码转换支持库


编码转换

编码转换 命令 操作系统支持：Windows、Linux 所属类别：编码转换

将指定的数据从一种编码转换为另一种编码，返回转换后的数据。如果执行失败，将返回空字节集，同时设置参数“执行结果”为“假”。本命令相当于“编码转换_打开()”“编码转换_转换()”“编码转换_关闭()”三个命令的组合使用。

语法： 字节集 编码转换 （被转换数据， 转换前的数据编码， 转换后的数据编码， ［执行结果］）

参数名 | 描 述
被转换数据 | 必需的； 字节集。
转换前的数据编码 | 必需的； 文本型。可以使用本库中定义的以“编码_”开头的编码常量。编码名称不区分字母大小写。注意：如果指定的编码与“被转换数据”的实际编码不符，很可能导致编码转换失败。
转换后的数据编码 | 必需的； 文本型。可以使用本库中定义的以“编码_”开头的编码常量。编码名称不区分字母大小写。
执行结果 | 可选的； 逻辑型，参数数据只能提供变量。如果提供本参数，其中将被写入本命令的执行结果——执行成功时为真，执行失败时为假。

例程：

说明：

将指定的数据从一种编码转换为另一种编码。

注意：易语言不能显示Unicode编码的文字，所以写到记事本显示。

参见：例程


编码转换_打开

编码转换_打开 命令 操作系统支持：Windows、Linux 所属类别：编码转换

初始化编码转换环境，返回一个句柄，供后续“编码转换_转换()”命令使用。如果本命令返回值为-1，表示执行失败。本命令返回的有效句柄必须使用“编码转换_关闭()”命令关闭。

语法： 整数型 编码转换_打开 （转换前的数据编码， 转换后的数据编码）

参数名 | 描 述
转换前的数据编码 | 必需的； 文本型。可以使用本库中定义的以“编码_”开头的编码常量。编码名称不区分字母大小写。注意：如果指定的编码与“被转换数据”的实际编码不符，很可能导致编码转换失败。
转换后的数据编码 | 必需的； 文本型。可以使用本库中定义的以“编码_”开头的编码常量。编码名称不区分字母大小写。

例程：

说明：

使用“编码转换_打开（）”命令时返回一个句柄，这个句柄供“编码转换_转换()”使用。


编码转换_转换

编码转换_转换 命令 操作系统支持：Windows、Linux 所属类别：编码转换

对指定数据进行编码转换，返回转换后的数据。对同一个“转换句柄”，可多次执行本命令，直到该句柄被关闭。如果执行失败，将返回空字节集，同时设置参数“执行结果”为“假”。

语法： 字节集 编码转换_转换 （转换句柄， 被转换数据， ［执行结果］）

参数名 | 描 述
转换句柄 | 必需的； 整数型。必须是“编码转换_打开()”命令所返回的句柄。
被转换数据 | 必需的； 字节集。
执行结果 | 可选的； 逻辑型，参数数据只能提供变量。如果提供本参数，其中将被写入本命令的执行结果——执行成功时为真，执行失败时为假。

例程：

说明：

对“编辑框_原ANSI文件”进行转换；如果执行失败，将返回空字节集。


编码转换_关闭

编码转换_关闭 命令 操作系统支持：Windows、Linux 所属类别：编码转换

关闭由“编码转换_打开()”命令所返回的转换句柄，释放相关资源。

语法： 逻辑型 编码转换_关闭 （转换句柄）

参数名 | 描 述
转换句柄 | 必需的； 整数型。必须是“编码转换_打开()”命令所返回的句柄。

例程：

说明：

使用完句柄是要关闭句柄，释放相关资源。


常量 | 常量值 | 描 述
#编码_GB2312 | “GB2312” |
#编码_EUC_CN | “EUC-CN” |
#编码_HZ | “HZ” |
#编码_GBK | “GBK” |
#编码_GB18030 | “GB18030” |
#编码_EUC_TW | “EUC-TW” |
#编码_BIG5 | “BIG5” |
#编码_CP950 | “CP950” |
#编码_BIG5_HKSCS | “BIG5-HKSCS” |
#编码_ISO_2022_CN | “ISO-2022-CN” |
#编码_ISO_2022_CN_EXT | “ISO-2022-CN-EXT” |
#编码_EUC_JP | “EUC-JP” |
#编码_SHIFT_JIS | “SHIFT_JIS” |
#编码_CP932 | “CP932” |
#编码_ISO_2022_JP | “ISO-2022-JP” |
#编码_ISO_2022_JP_2 | “ISO-2022-JP-2” |
#编码_ISO_2022_JP_1 | “ISO-2022-JP-1” |
#编码_EUC_JISX0213 | “EUC-JISX0213” |
#编码_Shift_JISX0213 | “Shift_JISX0213” |
#编码_ISO_2022_JP_3 | “ISO-2022-JP-3” |
#编码_EUC_KR | “EUC-KR” |
#编码_CP949 | “CP949” |
#编码_ISO_2022_KR | “ISO-2022-KR” |
#编码_JOHAB | “JOHAB” |
#编码_UTF_8 | “UTF-8” |
#编码_UCS_2 | “UCS-2” |
#编码_UCS_2BE | “UCS-2BE” |
#编码_UCS_2LE | “UCS-2LE” |
#编码_UCS_4 | “UCS-4” |
#编码_UCS_4BE | “UCS-4BE” |
#编码_UCS_4LE | “UCS-4LE” |
#编码_UTF_16 | “UTF-16” |
#编码_UTF_16BE | “UTF-16BE” |
#编码_UTF_16LE | “UTF-16LE” |
#编码_UTF_32 | “UTF-32” |
#编码_UTF_32BE | “UTF-32BE” |
#编码_UTF_32LE | “UTF-32LE” |
#编码_UTF_7 | “UTF-7” |
#编码_C99 | “C99” |
#编码_JAVA | “JAVA” |
#编码_UCS_2_INTERNAL | “UCS-2-INTERNAL” |
#编码_UCS_4_INTERNAL | “UCS-4-INTERNAL” |
#编码_ASCII | “ASCII” |
#编码_ISO_8859_1 | “ISO-8859-1” |
#编码_ISO_8859_2 | “ISO-8859-2” |
#编码_ISO_8859_3 | “ISO-8859-3” |
#编码_ISO_8859_4 | “ISO-8859-4” |
#编码_ISO_8859_5 | “ISO-8859-5” |
#编码_ISO_8859_7 | “ISO-8859-7” |
#编码_ISO_8859_9 | “ISO-8859-9” |
#编码_ISO_8859_10 | “ISO-8859-10” |
#编码_ISO_8859_13 | “ISO-8859-13” |
#编码_ISO_8859_14 | “ISO-8859-14” |
#编码_ISO_8859_15 | “ISO-8859-15” |
#编码_ISO_8859_16 | “ISO-8859-16” |
#编码_KOI8_R | “KOI8-R” |
#编码_KOI8_U | “KOI8-U” |
#编码_KOI8_RU | “KOI8-RU” |
#编码_CP1250 | “CP1250” |
#编码_CP1251 | “CP1251” |
#编码_CP1252 | “CP1252” |
#编码_CP1253 | “CP1253” |
#编码_CP1254 | “CP1254” |
#编码_CP1257 | “CP1257” |
#编码_CP850 | “CP850” |
#编码_CP866 | “CP866” |
#编码_MacRoman | “MacRoman” |
#编码_MacCentralEurope | “MacCentralEurope” |
#编码_MacIceland | “MacIceland” |
#编码_MacCroatian | “MacCroatian” |
#编码_MacRomania | “MacRomania” |
#编码_MacCyrillic | “MacCyrillic” |
#编码_MacUkraine | “MacUkraine” |
#编码_MacGreek | “MacGreek” |
#编码_MacTurkish | “MacTurkish” |
#编码_Macintosh | “Macintosh” |
#编码_CP437 | “CP437” |
#编码_CP737 | “CP737” |
#编码_CP775 | “CP775” |
#编码_CP852 | “CP852” |
#编码_CP853 | “CP853” |
#编码_CP855 | “CP855” |
#编码_CP857 | “CP857” |
#编码_CP858 | “CP858” |
#编码_CP860 | “CP860” |
#编码_CP861 | “CP861” |
#编码_CP863 | “CP863” |
#编码_CP865 | “CP865” |
#编码_CP869 | “CP869” |
#编码_CP1125 | “CP1125” |
#编码_ISO_8859_6 | “ISO-8859-6” |
#编码_ISO_8859_8 | “ISO-8859-8” |
#编码_CP1255 | “CP1255” |
#编码_CP1256 | “CP1256” |
#编码_CP862 | “CP862” |
#编码_MacHebrew | “MacHebrew” |
#编码_MacArabic | “MacArabic” |
#编码_CP864 | “CP864” |
#编码_ARMSCII_8 | “ARMSCII-8” |
#编码_Georgian_Academy | “Georgian-Academy” |
#编码_Georgian_PS | “Georgian-PS” |
#编码_KOI8_T | “KOI8-T” |
#编码_TIS_620 | “TIS-620” |
#编码_CP874 | “CP874” |
#编码_MacThai | “MacThai” |
#编码_MuleLao_1 | “MuleLao-1” |
#编码_CP1133 | “CP1133” |
#编码_VISCII | “VISCII” |
#编码_TCVN | “TCVN” |
#编码_CP1258 | “CP1258” |
#编码_TDS565 | “TDS565” |
#编码_HP_ROMAN8 | “HP-ROMAN8” |
#编码_NEXTSTEP | “NEXTSTEP” |
#编码_RISCOS_LATIN1 | “RISCOS-LATIN1” |
#编码_char | “char” |
#编码_wchar_t | “wchar_t” |


系统基本数据类型列表及其说明如下：

  1. 字节型。可容纳 0 到 255 之间的数值。

  2. 短整数型。可容纳 -32,768 到 32,767 之间的数值，尺寸为 2 个字节。

  3. 整数型。可容纳 -2,147,483,648 到 2,147,483,647 之间的数值，尺寸为 4 个字节。

  4. 长整数型。可容纳 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的数值，尺寸为 8 个字节。

  5. 小数型。可容纳 3.4E +/- 38 (7位小数) 之间的数值，尺寸为 4 个字节。

  6. 双精度小数型。可容纳 1.7E +/- 308 (15位小数) 之间的数值，尺寸为 8 个字节。

  7. 逻辑型。值只可能为“真”或“假”，尺寸为 2 个字节。“真”和“假”为系统预定义常量，其对应的英文常量名称为“true”和“false”。

  8. 日期时间型。用作记录日期及时间，尺寸为 8 个字节。

  9. 文本型。用作记录一段文本，文本由以字节 0 结束的一系列字符组成。

  10. 字节集。用作记录一段字节型数据。字节集与字节数组之间可以互相转换，在程序中允许使用字节数组的地方也可以使用字节集，或者相反。字节数组的使用方法，譬如用中括号对（“[]”）加索引数值引用字节成员，使用数组型数值数据进行赋值等等，都可以被字节集所使用。两者之间唯一的不同是字节集可以变长，因此可把字节集看作可变长的字节数组。

  11. 子程序指针。用作指向一个子程序，尺寸为 4 个字节。具有此数据类型的变量可以用来间接调用子程序。参见例程 sample.e 中的相应部分。

    在以上的基本数据类型中，字节型、短整数型、整数型、长整数型、小数型、双精度小数型被统称为“数值型”，它们之间可以任意转换。不过编程需要注意转换可能带来的精度丢失。譬如：将整数 257 转换为字节后的结果为 1 ，这是因为值 257 超出了字节型数据的最大上限 255 ，从而产生了溢出。

    另外，通用型数据类型仅在系统内部使用，它能够匹配所有的系统基本数据类型、库定义数据类型、自定义数据类型。