模块:EncoderUtil/doc
这是Module:EncoderUtil的文档页面
此页面是Module:EncoderUtil的模块文档。 此页面可能包含了模板的使用说明、分类和其他内容。 |
此模块文档被引用于约680,000个页面。 为了避免造成大规模的影响,所有对此模块文档的编辑应先于沙盒或测试样例上测试。 测试后无误的版本可以一次性地加入此模块文档中,但是修改前请务必于讨论页发起讨论。 模板引用数量会自动更新。 |
使用方法
编码
- 本模块._jsonEncode
能将Lua编码为JSON的函数。与mw.text.jsonEncode不同在于,mw.text.jsonEncode遇到函数对象会出错,而本模块的_jsonEncode会将函数对象以替代符号表示而不会出错,能正常变换各种Lua对象。
不支持模板直接调用。
解码
JSON解码仅需要使用mw.text.jsonDecode即可,本模块无特别提供。
解码
- 本模块.yamlDecode
原始码 | 输出 |
---|---|
{{#invoke:EncoderUtil|yamlDecode|
---
receipt: Oz-Ware Purchase Invoice
date: 2012-08-06
customer:
given: Dorothy
family: Gale}}
|
{
["customer"] = {
["family"] = "Gale",
["given"] = "Dorothy"
},
["date"] = 1344182400,
["receipt"] = "Oz-Ware Purchase Invoice"
}
|
- 本模块.yaml2json
将YAML变换为JSON。支持模板直接调用。
原始码 | 输出 |
---|---|
{{#invoke:EncoderUtil|yaml2json|
---
receipt: Oz-Ware Purchase Invoice
date: 2012-08-06
customer:
given: Dorothy
family: Gale}}
|
{"customer":{"given":"Dorothy","family":"Gale"},"date":1344182400,"receipt":"Oz-Ware Purchase Invoice"}
|
二进制资料流
本函数的功能并非设计给数字进行进制转换之用,而是资料流的编解码。若需要将数字进行进制转换,请参考Module:BaseConvert或Module:BigNumber提供的convertBase函数。
编码
- 本模块._toBinary(x,digits)
能将一整数变换成指定位数的二进制资料串。(供QR码资料串编码使用)
不支持模板直接调用。
- 本模块._binaryEncode(str)
能将一字符串以UTF-8的格式编码为二进制资料串。
有支持模板直接调用的函数binaryEncode
- 原始码
{{#invoke:EncoderUtil|binaryEncode|維基百科}}
- 输出→111001111011011010101101111001011001111110111010111001111001100110111110111001111010011110010001
- 本模块._hexadecimalEncode(str)
有支持模板直接调用的函数hexadecimalEncode
- 原始码
{{#invoke:EncoderUtil|hexadecimalEncode|維基百科,自由的百科全書}}
- 输出→e7b6ade59fbae799bee7a791efbc8ce887aae794b1e79a84e799bee7a791e585a8e69bb8
解码
- 本模块._binaryDecode(bin)
一个二进制资料串解码为UTF-8格式编码的字符串。
有支持模板直接调用的函数binaryDecode
- 原始码
{{#invoke:EncoderUtil|binaryDecode|111001111011011010101101111001011001111110111010111001111001100110111110111001111010011110010001}}
- 输出→維基百科
- 本模块._hexadecimalDecode(hex)
有支持模板直接调用的函数hexadecimalDecode
- 原始码
{{#invoke:EncoderUtil|hexadecimalDecode|e7b6ade59fbae799bee7a791efbc8ce887aae794b1e79a84e799bee7a791e585a8e69bb8}}
- 输出→維基百科,自由的百科全書
- 本模块._get_libqrcode()
初始化QR码编码程序库。此处所有函数皆不支持模板直接调用。若要让模板直接调用,请改用Module:QR和Module:RegularTiling提供的API(相依于本模块)。
初始化完的程序库有以下成员:
- license:记录函数库三句版BSD许可条款的详细资料。
- encode_string_numeric:将纯数字字符串编码为QR码格式的二进制资料流。
- encode_string_ascii:将纯ASCII字符串编码为QR码格式的二进制资料流。
- encode_string_binary:将UTF-8字符串编码为QR码格式的二进制资料流。
- encode_data:根据QR码编码模式将输入的资料编码为QR码格式的二进制资料流。
- qrcode:生成完整QR码二维码的二进制资料流。
- get_mode:判断输入字符串适合的QR码编码模式。
- get_length:将资料长度信息编码为QR码格式的二进制资料流。
- add_pad_data:生成QR码的padding bits。
- get_generator_polynominal_adjusted:
- get_pixel_with_mask:获取QR码特定位置的掩模。
- get_version_eclevel_mode_bistringlength:
- get_version_eclevel:
- remainder:各Ver的QR码编码时需要补余的位元数量。
- arrange_codewords_and_calculate_ec:
- calculate_error_correction:计算纠错码
- convert_bitstring_to_bytes:将长度为 的二进制字符串变换为长度为 的数字数组。
- get_matrix_and_penalty:
- get_matrix_with_lowest_penalty:
- bit_xor:
- 本模块._get_libbase64()
初始化Base64编码程序库。此处所有函数皆不支持模板直接调用。
初始化完的程序库有以下成员:
- encode( str, encoder, usecaching ):将字符串以指定编码器编码为Base64。
- decode( b64, decoder, usecaching ):将Base64资料流以指定解码器进行解码。
- makeencoder( s62, s63, spad ):以给定的62、63字符和指定的spad生成编码器。
- makedecoder( s62, s63, spad ):以给定的62、63字符和指定的spad生成解码器。
编码
- 本模块.base64Encode(str)
将字符串编码为标准的Base64资料流。支持模板直接调用。
- 原始码
{{#invoke:EncoderUtil|base64Encode|維基百科,自由的百科全書}}
- 输出→57at5Z+655m+56eR77yM6Ieq55Sx55qE55m+56eR5YWo5pu4
解码
- 本模块.base64Decode(b64)
将给定的Base64资料流依照标准的Base64格式进行解码。支持模板直接调用。
- 原始码
{{#invoke:EncoderUtil|base64Decode|57at5Z+655m+56eR77yM6Ieq55Sx55qE55m+56eR5YWo5pu4}}
- 输出→維基百科,自由的百科全書