<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://130.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AEncoderUtil%2Fdoc</id>
	<title>Module:EncoderUtil/doc - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://130.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AEncoderUtil%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://130.wiki/index.php?title=Module:EncoderUtil/doc&amp;action=history"/>
	<updated>2026-10-12T22:10:28Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://130.wiki/index.php?title=Module:EncoderUtil/doc&amp;diff=3029&amp;oldid=prev</id>
		<title>IdleTap-bot：​导入自求闻百科</title>
		<link rel="alternate" type="text/html" href="https://130.wiki/index.php?title=Module:EncoderUtil/doc&amp;diff=3029&amp;oldid=prev"/>
		<updated>2026-08-03T08:20:59Z</updated>

		<summary type="html">&lt;p&gt;导入自求闻百科&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA/MediaWiki|G1=math|G2=IT}}&lt;br /&gt;
{{Documentation subpage}}&amp;lt;!-- 在本行下編輯模組說明 --&amp;gt;{{High-use}}&lt;br /&gt;
主要提供5種[[編碼]]或[[解碼]]工具：&lt;br /&gt;
*JSON編碼/解碼&lt;br /&gt;
**包含一個「非函數物件之深層複製」的方法&lt;br /&gt;
*簡易的[[YAML]]解碼&lt;br /&gt;
*[[二进制]]編碼&lt;br /&gt;
*[[QR碼]]編碼（{{tl|QR}}）&lt;br /&gt;
*[[Base64]]編碼/解碼（{{tl|Base64}}）&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
=== [[JSON]] ===&lt;br /&gt;
==== 編碼 ====&lt;br /&gt;
;{{Anchor|_jsonEncode}}本模組._jsonEncode&lt;br /&gt;
能將Lua編碼為JSON的函數。與mw.text.jsonEncode不同在於，mw.text.jsonEncode遇到函數物件會出錯，而本模組的_jsonEncode會將函數物件以替代符號表示而不會出錯，能正常轉換各種Lua物件。&lt;br /&gt;
&lt;br /&gt;
不支援模板直接呼叫。&lt;br /&gt;
==== 解碼 ====&lt;br /&gt;
JSON解碼僅需要使用mw.text.jsonDecode即可，本模組無特別提供。&lt;br /&gt;
=== [[YAML]] ===&lt;br /&gt;
==== 解碼 ====&lt;br /&gt;
;{{Anchor|yamlDecode}}本模組.yamlDecode&lt;br /&gt;
能將[[YAML]]解碼為[[Lua]]物件。支援模板直接呼叫。&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!原始碼&lt;br /&gt;
!輸出&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=yaml&amp;gt;{{#invoke:EncoderUtil|yamlDecode|&lt;br /&gt;
---&lt;br /&gt;
receipt:     Oz-Ware Purchase Invoice&lt;br /&gt;
date:        2012-08-06&lt;br /&gt;
customer:&lt;br /&gt;
    given:   Dorothy&lt;br /&gt;
    family:  Gale}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|{{#tag:syntaxhighlight|{{#invoke:EncoderUtil|yamlDecode|&lt;br /&gt;
---&lt;br /&gt;
receipt:     Oz-Ware Purchase Invoice&lt;br /&gt;
date:        2012-08-06&lt;br /&gt;
customer:&lt;br /&gt;
    given:   Dorothy&lt;br /&gt;
    family:  Gale}}|lang=lua}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;{{Anchor|yaml2json}}本模組.yaml2json&lt;br /&gt;
將YAML轉換為JSON。支援模板直接呼叫。&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!原始碼&lt;br /&gt;
!輸出&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=yaml&amp;gt;{{#invoke:EncoderUtil|yaml2json|&lt;br /&gt;
---&lt;br /&gt;
receipt:     Oz-Ware Purchase Invoice&lt;br /&gt;
date:        2012-08-06&lt;br /&gt;
customer:&lt;br /&gt;
    given:   Dorothy&lt;br /&gt;
    family:  Gale}}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|{{#tag:syntaxhighlight|{{#invoke:EncoderUtil|yaml2json|&lt;br /&gt;
---&lt;br /&gt;
receipt:     Oz-Ware Purchase Invoice&lt;br /&gt;
date:        2012-08-06&lt;br /&gt;
customer:&lt;br /&gt;
    given:   Dorothy&lt;br /&gt;
    family:  Gale}}|lang=json}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[二进制]]資料流 ===&lt;br /&gt;
本函數的功能並非設計給數字進行[[进制]]轉-{}-換之用，而是資料流的編解碼。若需要將數字進行[[进制]]轉-{}-換，請參考[[Module:BaseConvert]]或[[Module:BigNumber]]提供的[[Module:BigNumber#convertBase|convertBase函數]]。&lt;br /&gt;
==== 編碼 ====&lt;br /&gt;
;{{Anchor|_toBinary}}本模組._toBinary(x,digits)&lt;br /&gt;
能將一整數轉換成指定位數的二進制資料串。（供QR碼資料串編碼使用）&lt;br /&gt;
&lt;br /&gt;
不支援模板直接呼叫。&lt;br /&gt;
&lt;br /&gt;
;{{Anchor|_binaryEncode|binaryEncode}}本模組._binaryEncode(str)&lt;br /&gt;
能將一字串以[[UTF-8]]的格式編碼為二進制資料串。&lt;br /&gt;
&lt;br /&gt;
有支援模板直接呼叫的函數&amp;lt;code&amp;gt;binaryEncode&amp;lt;/code&amp;gt;&lt;br /&gt;
*原始碼{{tlxm|#invoke|EncoderUtil|binaryEncode|-{維基百科}-}}&lt;br /&gt;
*:輸出→{{#invoke:EncoderUtil|binaryEncode|維基百科}}&lt;br /&gt;
&lt;br /&gt;
;{{Anchor|_hexadecimalEncode|hexadecimalEncode}}本模組._hexadecimalEncode(str)&lt;br /&gt;
能將一字串以[[UTF-8]]的格式編碼為[[十六进制]]資料串。&lt;br /&gt;
&lt;br /&gt;
有支援模板直接呼叫的函數&amp;lt;code&amp;gt;hexadecimalEncode&amp;lt;/code&amp;gt;&lt;br /&gt;
*原始碼{{tlxm|#invoke|EncoderUtil|hexadecimalEncode|-{維基百科，自由的百科全書}-}}&lt;br /&gt;
*:輸出→{{#invoke:EncoderUtil|hexadecimalEncode|維基百科，自由的百科全書}}&lt;br /&gt;
&lt;br /&gt;
==== 解碼 ====&lt;br /&gt;
;{{Anchor|_binaryDecode|binaryDecode}}本模組._binaryDecode(bin)&lt;br /&gt;
一個二進制資料串解碼為[[UTF-8]]格式編碼的字串。&lt;br /&gt;
&lt;br /&gt;
有支援模板直接呼叫的函數&amp;lt;code&amp;gt;binaryDecode&amp;lt;/code&amp;gt;&lt;br /&gt;
*原始碼{{tlxm|#invoke|EncoderUtil|binaryDecode|111001111011011010101101111001011001111110111010111001111001100110111110111001111010011110010001}}&lt;br /&gt;
*:輸出→-{&amp;lt;span&amp;gt;{{#invoke:EncoderUtil|binaryDecode|111001111011011010101101111001011001111110111010111001111001100110111110111001111010011110010001}}&amp;lt;/span&amp;gt;}-&lt;br /&gt;
&lt;br /&gt;
;{{Anchor|_hexadecimalDecode|hexadecimalDecode}}本模組._hexadecimalDecode(hex)&lt;br /&gt;
一個[[十六进制]]資料串解碼為[[UTF-8]]格式編碼的字串。&lt;br /&gt;
&lt;br /&gt;
有支援模板直接呼叫的函數&amp;lt;code&amp;gt;hexadecimalDecode&amp;lt;/code&amp;gt;&lt;br /&gt;
*原始碼{{tlxm|#invoke|EncoderUtil|hexadecimalDecode|e7b6ade59fbae799bee7a791efbc8ce887aae794b1e79a84e799bee7a791e585a8e69bb8}}&lt;br /&gt;
*:輸出→-{&amp;lt;span&amp;gt;{{#invoke:EncoderUtil|hexadecimalDecode|e7b6ade59fbae799bee7a791efbc8ce887aae794b1e79a84e799bee7a791e585a8e69bb8}}&amp;lt;/span&amp;gt;}-&lt;br /&gt;
&lt;br /&gt;
=== [[QR碼]] ===&lt;br /&gt;
;{{Anchor|_get_libqrcode}}本模組._get_libqrcode()&lt;br /&gt;
初始化QR碼編碼程式庫。此處所有函數皆不支援模板直接呼叫。若要讓模板直接呼叫，請改用[[Module:QR]]和[[Module:RegularTiling]]提供的API（相依於本模組）。&lt;br /&gt;
&lt;br /&gt;
初始化完的程式庫有以下成員：&lt;br /&gt;
*{{Anchor|qr.license}}&amp;#039;&amp;#039;&amp;#039;license&amp;#039;&amp;#039;&amp;#039;：記錄函式庫[[BSD许可证|三句版BSD授權條款]]的詳細資料。&lt;br /&gt;
*{{Anchor|qr.encode_string_numeric}}&amp;#039;&amp;#039;&amp;#039;encode_string_numeric&amp;#039;&amp;#039;&amp;#039;：將純數字字串編碼為[[QR碼]]格式的[[二进制]]資料流。&lt;br /&gt;
*{{Anchor|qr.encode_string_ascii}}&amp;#039;&amp;#039;&amp;#039;encode_string_ascii&amp;#039;&amp;#039;&amp;#039;：將純[[ASCII]]字串編碼為QR碼格式的[[二进制]]資料流。&lt;br /&gt;
*{{Anchor|qr.encode_string_binary}}&amp;#039;&amp;#039;&amp;#039;encode_string_binary&amp;#039;&amp;#039;&amp;#039;：將[[UTF-8]]字串編碼為QR碼格式的[[二进制]]資料流。&lt;br /&gt;
*{{Anchor|qr.encode_data}}&amp;#039;&amp;#039;&amp;#039;encode_data&amp;#039;&amp;#039;&amp;#039;：根據QR碼編碼模式將輸入的資料編碼為QR碼格式的[[二进制]]資料流。&lt;br /&gt;
*{{Anchor|qr.qrcode}}&amp;#039;&amp;#039;&amp;#039;qrcode&amp;#039;&amp;#039;&amp;#039;：生成完整[[QR碼]]二維碼的[[二进制]]資料流。&lt;br /&gt;
*{{Anchor|qr.get_mode}}&amp;#039;&amp;#039;&amp;#039;get_mode&amp;#039;&amp;#039;&amp;#039;：判斷輸入字串適合的[[QR碼]]編碼模式。&lt;br /&gt;
*{{Anchor|qr.get_length}}&amp;#039;&amp;#039;&amp;#039;get_length&amp;#039;&amp;#039;&amp;#039;：將資料長度資訊編碼為QR碼格式的二进制資料流。&lt;br /&gt;
*{{Anchor|qr.add_pad_data}}&amp;#039;&amp;#039;&amp;#039;add_pad_data&amp;#039;&amp;#039;&amp;#039;：生成QR碼的padding bits。&lt;br /&gt;
*{{Anchor|qr.get_generator_polynominal_adjusted}}&amp;#039;&amp;#039;&amp;#039;get_generator_polynominal_adjusted&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
*{{Anchor|qr.get_pixel_with_mask}}&amp;#039;&amp;#039;&amp;#039;get_pixel_with_mask&amp;#039;&amp;#039;&amp;#039;：取得QR碼特定位置的掩模。&lt;br /&gt;
*{{Anchor|qr.get_version_eclevel_mode_bistringlength}}&amp;#039;&amp;#039;&amp;#039;get_version_eclevel_mode_bistringlength&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
*{{Anchor|qr.get_version_eclevel}}&amp;#039;&amp;#039;&amp;#039;get_version_eclevel&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
*{{Anchor|qr.remainder}}&amp;#039;&amp;#039;&amp;#039;remainder&amp;#039;&amp;#039;&amp;#039;：各Ver的QR碼編碼時需要補餘的位元數量。&lt;br /&gt;
*{{Anchor|qr.arrange_codewords_and_calculate_ec}}&amp;#039;&amp;#039;&amp;#039;arrange_codewords_and_calculate_ec&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
*{{Anchor|qr.calculate_error_correction}}&amp;#039;&amp;#039;&amp;#039;calculate_error_correction&amp;#039;&amp;#039;&amp;#039;：計算糾錯碼&lt;br /&gt;
*{{Anchor|qr.convert_bitstring_to_bytes}}&amp;#039;&amp;#039;&amp;#039;convert_bitstring_to_bytes&amp;#039;&amp;#039;&amp;#039;：將長度為&amp;lt;math&amp;gt;8\times x&amp;lt;/math&amp;gt;的二进制字串轉換為長度為&amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;的數字陣列。&lt;br /&gt;
*{{Anchor|qr.get_matrix_and_penalty}}&amp;#039;&amp;#039;&amp;#039;get_matrix_and_penalty&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
*{{Anchor|qr.get_matrix_with_lowest_penalty}}&amp;#039;&amp;#039;&amp;#039;get_matrix_with_lowest_penalty&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
*{{Anchor|qr.bit_xor}}&amp;#039;&amp;#039;&amp;#039;bit_xor&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
&lt;br /&gt;
=== [[Base64]] ===&lt;br /&gt;
;{{Anchor|_get_libbase64}}本模組._get_libbase64()&lt;br /&gt;
初始化[[Base64]]編碼程式庫。此處所有函數皆不支援模板直接呼叫。&lt;br /&gt;
&lt;br /&gt;
初始化完的程式庫有以下成員：&lt;br /&gt;
*{{Anchor|base64.encode}}&amp;#039;&amp;#039;&amp;#039;encode( str, encoder, usecaching )&amp;#039;&amp;#039;&amp;#039;：將字串以指定編碼器編碼為[[Base64]]。&lt;br /&gt;
*{{Anchor|base64.decode}}&amp;#039;&amp;#039;&amp;#039;decode( b64, decoder, usecaching )&amp;#039;&amp;#039;&amp;#039;：將Base64資料流以指定解碼器進行解碼。&lt;br /&gt;
*{{Anchor|base64.makeencoder}}&amp;#039;&amp;#039;&amp;#039;makeencoder( s62, s63, spad )&amp;#039;&amp;#039;&amp;#039;：以給定的62、63字元和指定的spad生成編碼器。&lt;br /&gt;
*{{Anchor|base64.makedecoder}}&amp;#039;&amp;#039;&amp;#039;makedecoder( s62, s63, spad )&amp;#039;&amp;#039;&amp;#039;：以給定的62、63字元和指定的spad生成解碼器。&lt;br /&gt;
&lt;br /&gt;
==== 編碼 ====&lt;br /&gt;
;{{Anchor|base64Encode}}本模組.base64Encode(str)&lt;br /&gt;
將字串編碼為標準的[[Base64]]資料流。支援模板直接呼叫。&lt;br /&gt;
*原始碼{{tlxm|#invoke|EncoderUtil|base64Encode|-{求闻百科}-}}&lt;br /&gt;
*:輸出→{{#invoke:EncoderUtil|base64Encode|求闻百科}}&lt;br /&gt;
&lt;br /&gt;
==== 解碼 ====&lt;br /&gt;
;{{Anchor|base64Encode}}本模組.base64Decode(b64)&lt;br /&gt;
將給定的[[Base64]]資料流依照標準的[[Base64]]格式進行解碼。支援模板直接呼叫。&lt;br /&gt;
*原始碼{{tlxm|#invoke|EncoderUtil|base64Decode|5rGC6Ze755m+56eR}}&lt;br /&gt;
*:輸出→-{&amp;lt;span&amp;gt;{{#invoke:EncoderUtil|base64Decode|5rGC6Ze755m+56eR}}&amp;lt;/span&amp;gt;}-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- 本行下加入模組的分類 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>IdleTap-bot</name></author>
	</entry>
</feed>