File: D:/HostingSpaces/JTent/tentje.com/wwwroot/2015_02_13/layout/tsg_mobile/content/js/utf.js
/**********************************************************************
*** UTF-8 to UTF 16 Conversion ***
*** UTF-16 to UTF 8 Conversion ***
*** ***
*** Author: Ansgar Schmidt; M.I.T newmedia ***
*** Updated: Guido Paschold, M.I.T newmedia ***
*** 08.06.2005 ***
*** ***
*** Tested Browsers: IE 6.0: OK ***
*** NS 4.75: - (Eingabe von UTF-16 String in ***
*** Test-Inputfield nicht moeglich ***
*** NS 7.1: OK ***
*** FF 1.0: nicht getestet ***
*** MZ 1.73: nicht getestet ***
**********************************************************************/
function utf16to8(psStr) {
// Argument: UTF-16 String
var lsChar;
var lsReturn = "";
var liStrLen = psStr.length;
for (var i=0; i<liStrLen; i++) {
lsChar = psStr.charCodeAt(i);
if ((lsChar >= 0x0001) && (lsChar <= 0x007F)) {
lsReturn += psStr.charAt(i);
} else if (lsChar > 0x07FF) {
lsReturn += String.fromCharCode(0xE0 | ((lsChar >> 12) & 0x0F));
lsReturn += String.fromCharCode(0x80 | ((lsChar >> 6) & 0x3F));
lsReturn += String.fromCharCode(0x80 | ((lsChar >> 0) & 0x3F));
} else {
lsReturn += String.fromCharCode(0xC0 | ((lsChar >> 6) & 0x1F));
lsReturn += String.fromCharCode(0x80 | ((lsChar >> 0) & 0x3F));
}
}
// Return: UTF-8 String
return lsReturn;
}
function utf8to16(psStr) {
// Argument: UTF-8 String
var lsChar, lsChar2, lsChar3;
var lsReturn = "";
var liStrLen = psStr.length;
var i = 0;
while(i < liStrLen) {
lsChar = psStr.charCodeAt(i++);
switch (lsChar >> 4) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
lsReturn += psStr.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
lsChar2 = psStr.charCodeAt(i++);
lsReturn += String.fromCharCode(((lsChar & 0x1F) << 6) | (lsChar2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
lsChar2 = psStr.charCodeAt(i++);
lsChar3 = psStr.charCodeAt(i++);
lsReturn += String.fromCharCode(((lsChar & 0x0F) << 12) | ((lsChar2 & 0x3F) << 6) | ((lsChar3 & 0x3F) << 0));
break;
}
}
// Return: UTF-16 String
return lsReturn;
}