From 4567e897a9b33c9e969b6acc6c75ae620823e847 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Thu, 17 Mar 2011 12:27:33 +0800 Subject: [PATCH] Roo.js --- Roo.js | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/Roo.js b/Roo.js index dc82babdb2..7545ed9223 100644 --- a/Roo.js +++ b/Roo.js @@ -367,10 +367,46 @@ Roo.factory(conf, Roo.data); return encodeURIComponent(str); } catch(e) {} // should be an uri encode error. - - - - + if (data == '' || data == null){ + return ''; + } + // http://stackoverflow.com/questions/2596483/unicode-and-uri-encoding-decoding-and-escaping-in-javascript + function nibble_to_hex(nibble){ + var chars = '0123456789ABCDEF'; + return chars.charAt(nibble); + } + data = data.toString(); + var buffer = ''; + for(var i=0; i 0x10000){ + // 4 bytes + bs[0] = 0xF0 | ((c & 0x1C0000) >>> 18); + bs[1] = 0x80 | ((c & 0x3F000) >>> 12); + bs[2] = 0x80 | ((c & 0xFC0) >>> 6); + bs[3] = 0x80 | (c & 0x3F); + }else if (c > 0x800){ + // 3 bytes + bs[0] = 0xE0 | ((c & 0xF000) >>> 12); + bs[1] = 0x80 | ((c & 0xFC0) >>> 6); + bs[2] = 0x80 | (c & 0x3F); + }else if (c > 0x80){ + // 2 bytes + bs[0] = 0xC0 | ((c & 0x7C0) >>> 6); + bs[1] = 0x80 | (c & 0x3F); + }else{ + // 1 byte + bs[0] = c; + } + for(var j=0; j>> 4) + + nibble_to_hex(b &0x0F);buffer += '%'+hex; + } + } + return encodeURIComponent(buffer); + }, /** -- 2.39.2