题
我试图写在Lyris ListManager(10.2)定制。语言是TCL的,我不是很了解。我们需要编码值为base64(或者说真的,任何一个混淆查询参数),但我似乎无法弄清楚如何。是否有一个命令,原产于TCL这样做呢?
解决方案
按照你使用的base64包,你可以使用这些小特效将数据转换为十六进制和背部问题。需要的Tcl> 8
proc BIN2HEX { text } { binary scan $text H* result; return $result }
proc HEX2BIN { hex } { return [binary format H* $hex] }
set hex [BIN2HEX $yourText]
set textAgain [HEX2BIN $hex]
如果你真的需要的base64你可以复制/粘贴从tcllib分布的 http://sourceforge.net/projects/tcllib/files/tcllib/1.11.1/ 到您的代码(删除 “包提供” 线)
其他提示
http://tcllib.sourceforge.net/doc/base64.html <的存在/ A>似乎表明,是没有原生的功能。你可以复制源并将其添加到您的修改。
% base64::encode "Hello, world"
SGVsbG8sIHdvcmxk
% base64::encode [string repeat xyz 20]
eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6
eHl6eHl6eHl6
% base64::encode -wrapchar "" [string repeat xyz 20]
eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6eHl6
# NOTE: base64 encodes BINARY strings.
% set chemical [encoding convertto utf-8 "C\u2088H\u2081\u2080N\u2084O\u2082"]
% set encoded [base64::encode $chemical]
Q+KCiEjigoHigoBO4oKET+KCgg==
% set caffeine [encoding convertfrom utf-8 [base64::decode $encoded]]
如果您需要的Tcl库(封装/模块)加载到你的环境的能力,你可以使用的 Tcllib 实施。这就是Vinko Vrsalovic是示出从在他的响应的命令。
% package require base64
2.4
% base64::encode bob
Ym9i
如果这将是不够好,只是以十六进制编码,可以使用的二进制命令如下:
% set query "Hello, world"
Hello, world
% binary scan $query H* hexquery
1
% puts $hexquery
48656c6c6f2c20776f726c64
不隶属于 StackOverflow