MaxReve نشر 23 أكتوبر 2015 أرسل تقرير نشر 23 أكتوبر 2015 أحتاج إلى ترميز هذه السلسلة النصية:\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a لتصبح مثل التالي:%124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A قمت بتجربة عدة محاولات للترميز لكنها لم تنجح، فما هي الطريقة الصحيحة لفعل ذلك؟ اقتباس
0 هشام رزق الله نشر 23 أكتوبر 2015 أرسل تقرير نشر 23 أكتوبر 2015 هنالك طريقتين لحل هذه المشكلة حسب إصدار روبي المثبت على جهازك، فإذا كنت تستخدم الإصدارات الجديدة للروبي فيمكنك في هذه الحالة استخدام تابع escape من مكتبة cgi لترميز السلسلة النصية كما في المثال التالي:str = "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a" require 'cgi' CGI.escape(str) # => "%124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A" وهنالك طريقة أخرى تعمل على الإصدارات الأقدم من روبي (تم إزالتها في الإصدارات الجديدة) وهي عن طريق استخدام تابع encode من وحدة open-uri للترميز كما في المثال التالي:require 'open-uri' str = "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a".force_encoding('ASCII-8BIT') puts URI::encode(str) كما يمكنك استخدام ERB::Util.url_encode للترميز كما في المثال التالي:>> ERB::Util.url_encode("foo/bar? baz&") => "foo%2Fbar%3F%20baz%26" المصدر اقتباس
السؤال
MaxReve
أحتاج إلى ترميز هذه السلسلة النصية:
لتصبح مثل التالي:
قمت بتجربة عدة محاولات للترميز لكنها لم تنجح، فما هي الطريقة الصحيحة لفعل ذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.