سؤال

أحاول كتابة تخصيص في Lyris ListManager (10.2). اللغة هي TCL، والتي أعرفها قليلا جدا. نحتاج إلى تشفير قيمة كقسم Base64 (أو حقا، أي شيء يحث مع معلمة QueryString)، لكن لا يمكنني معرفة كيفية ذلك. هل هناك أمر أصلي ل TCL للقيام بذلك؟

هل كانت مفيدة؟

المحلول

بعد مشكلتك لاستخدام حزمة Base64، يمكنك استخدام هذه Procs Little لتحويل بياناتك إلى عرافة والظهر. يتطلب 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، يمكنك فقط نسخ / لصق ملف Base64 بأكمله من توزيع TCLLIB http://sourceforge.net/projects/tcllib/files/tcllib/1.11.1/ في التعليمات البرمجية الخاصة بك (إزالة خط "الحزمة")

نصائح أخرى

وجود ال http://tcllib.sourceforge.net/doc/base64.html. يبدو أن تشير إلى أنه لا توجد وظائف أصلية. يمكنك نسخ المصدر وإضافته إلى التعديلات الخاصة بك.

% 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top