转换二进制变量为字符串.
BinaryToString ( 表达式 [, 标志] )
表达式 | 待转换的二进制变量. |
标志 | [可选参数] 指定如何转换二进制数据: 标志 = 1 (默认), 二进制数据为 ANSI 编码 标志 = 2, 二进制数据为 UTF16 小编码 标志 = 3, 二进制数据为 UTF16 大编码 标志 = 4, 二进制数据为 UTF8 编码 |
成功: | 返回二进制转换后的字符串. |
失败: | 返回空字符串. @error 设为下列值: |
1 - 字符串长度为 0. | |
2 - 字符串为奇数字节,但指定了 UTF16 编码 (必须偶数字节才是有效的 UTF16). |
Example()
Func Example()
;
定义将转换的字符串.
; 注:在帮助文件,
甚至在一些编辑器中此字符串可能会显示为 ??.
; 这个例子保存为带
BOM 的 UTF-8 编码. 它应该在支持基于 BOM
;
代码页转换的编辑器上正确显示.
Local
Const $sString
= "Hello - 你好"
;译注: 此处中文为官方设置,非汉化
; 临时变量,
用于存储转换结果. $sBinary 将保存二进制形式的原始字符串,
;
$sConverted 将保存结果,
;
用于以后将其转换回原来的格式.
Local
$sBinary,
$sConverted
; 原 UTF-8
字符串转换为 ANSI 兼容的二进制字符串.
$sBinary = StringToBinary($sString)
; 转换 ANSI
兼容的二进制字符串成一个字符串.
$sConverted = BinaryToString($sBinary)
; 显示的结果.
需要注意的是最后两个字符会出现 ??
; 因为它们不能代表
ANSI.(译注:中文 SCITE 编辑器显示与运行均正常)
DisplayResults($sString, $sBinary, $sConverted, "ANSI")
; 原 UTF-8
字符串转换到 UTF16-LE 二进制字符串.
$sBinary = StringToBinary($sString, 2)
; UTF16-LE
二进制字符串转换成一个字符串.
$sConverted = BinaryToString($sBinary, 2)
;
显示结果.
DisplayResults($sString, $sBinary, $sConverted, "UTF16-LE")
; 原 UTF-8
字符串转换到 UTF16-BE 二进制字符串.
$sBinary = StringToBinary($sString, 3)
; UTF16-BE
二进制字符串转换成一个字符串.
$sConverted = BinaryToString($sBinary, 3)
;
显示结果.
DisplayResults($sString, $sBinary, $sConverted, "UTF16-BE")
; 原 UTF-8
字符串转换到 UTF-8 的二进制字符串.
$sBinary = StringToBinary($sString, 4)
; UTF8
的二进制字符串转换成一个字符串.
$sConverted = BinaryToString($sBinary, 4)
;
显示结果.
DisplayResults($sString, $sBinary, $sConverted, "UTF8")
EndFunc
; 显示消息的辅助函数格式. 采用下列参数:
; $sOriginal - 转换前的原始字符串.
; $sBinary - 原始字符串已转换为二进制的字符串.
; $sConverted- 转换为二进制后返回的字符串.
; $sConversionType - 用于转换的编码类型名称.
Func DisplayResults($sOriginal, $sBinary, $sConverted, $sConversionType)
MsgBox(4096, "", "原型:" & @CRLF & $sOriginal & @CRLF & @CRLF & "二进制:" & @CRLF & $sBinary & @CRLF & @CRLF & $sConversionType &
":" &
@CRLF &
$sConverted)
EndFunc
provider with jb51.net (unicode) |