function Utf8ToUnicode(strUtf8)
{
var bstr = "";
var nTotalChars = strUtf8.length; // total chars to be processed.
var nOffset = 0; // processing point on strUtf8
var nRemainingBytes = nTotalChars; // how many bytes left to be converted
var nOutputPosition = 0;
var iCode, iCode1, iCode2; // the value of the unicode.
while (nOffset < nTotalChars)
{
iCode = strUtf8.charCodeAt(nOffset);
if ((iCode & 0x80) == 0) // 1 byte.
{
if ( nRemainingBytes < 1 ) // not enough data
break;
bstr += String.fromCharCode(iCode & 0x7F);
nOffset ++;
nRemainingBytes -= 1;
}
else if ((iCode & 0xE0) == 0xC0) // 2 bytes
{
iCode1 = strUtf8.charCodeAt(nOffset + 1);
if ( nRemainingBytes < 2 || // not enough data
(iCode1 & 0xC0) != 0x80 ) // invalid pattern
{
break;
}
bstr += String.fromCharCode(((iCode & 0x3F) << 6) | ( iCode1 & 0x3F));
nOffset += 2;
nRemainingBytes -= 2;
}
else if ((iCode & 0xF0) == 0xE0) // 3 bytes
{
iCode1 = strUtf8.charCodeAt(nOffset + 1);
iCode2 = strUtf8.charCodeAt(nOffset + 2);
if ( nRemainingBytes < 3 || // not enough data
(iCode1 & 0xC0) != 0x80 || // invalid pattern
(iCode2 & 0xC0) != 0x80 )
{
break;
}
bstr += String.fromCharCode(((iCode & 0x0F) << 12) |
((iCode1 & 0x3F) << 6) |
(iCode2 & 0x3F));
nOffset += 3;
nRemainingBytes -= 3;
}
else // 4 or more bytes -- unsupported
break;
}
if (nRemainingBytes != 0)
{
// bad UTF8 string.
return "";
}
return bstr;
}
分享到:
相关推荐
总结一下,GBK到UTF-8的转换涉及到字符编码理论、编程语言的字符串处理以及错误处理机制。在实际应用中,我们不仅需要理解这些概念,还要根据具体编程环境选择合适的方法进行转换,同时确保程序的健壮性,处理可能...
包含GBK和UTF16字符集的对照表,用于将GBK字节流和UTF字符串之间的互相转换。
标题中的“UTF8GBK互转换工具”是一款软件或在线服务,专门用于在UTF-8和GBK两种字符编码之间进行转换。UTF-8和GBK是计算机领域中常见的字符编码标准,它们各自有不同的特性和应用场景。 UTF-8(Unicode ...
本文将深入探讨PHP中的字符编码转换,特别是针对ANSI、Unicode(包括Little Endian和Big Endian)、UTF-8以及UTF-8+BOM的转换。 首先,让我们了解这些编码格式的含义: 1. ANSI编码:通常指的是Windows系统的默认...
总的来说,`u2gb.js`是一个实用的JavaScript工具,它简化了Unicode到GBK编码的转换过程,使得开发者在处理中文字符编码问题时更加便捷。在实际开发中,理解字符编码的原理以及如何在JavaScript中进行转换是非常重要...
在处理包含GBK字符的URI时,如果直接使用`encodeURI`,可能会导致乱码问题。这是因为`encodeURI`默认使用的是UTF-8编码,与GBK不兼容。 要解决这个问题,我们需要将GBK编码的字符串转换为UTF-8,然后进行URI编码。...
在互联网应用中,数据传输时常会遇到字符编码问题,特别是在中文环境下。GBK是GB2312编码的扩展,广泛用于简体中文环境。URL编码是将非ASCII字符转换为可安全包含在URL中的形式,而URL解码则是将这些编码还原为原始...
在处理中文字符集时,我们经常会遇到编码问题,尤其是当服务器与客户端使用不同的字符编码标准时,如GBK(国标扩展编码)和UTF-8(万国码)。GBK编码是中国大陆使用的一种广泛的标准,它包含了GB2312中的所有汉字,...
GBK(Great Chinese Character Set)是中国大陆广泛使用的汉字编码标准,而UTF-8是国际通用的Unicode编码标准,支持世界上几乎所有的字符集。在处理跨平台或者多语言的网站时,UTF-8因其广泛的兼容性和可扩展性而更...
`iconv-lite` 支持多种常见的字符编码,如 UTF-8、GBK、BIG5、ISO-8859-1 等,使得开发者能够轻松地在不同编码之间进行转换,避免乱码问题。 在实际应用中,`iconv-lite` 的使用方法非常直观。首先,你需要通过 npm...
GBK和UTF-8是两种常见的字符编码标准,它们各自有其特点和适用场景。本篇文章将详细解析这两种编码的区别以及如何进行转换,特别是针对批量处理的需求。 GBK编码是中国大陆广泛使用的汉字编码标准,它是GB2312的...
GBK和UTF-8是两种常见的字符编码格式,它们各有特点,适用于不同的场景。 GBK编码,全称“汉字内码扩展规范”(GBK, Chinese Internal Code Specification),是中国大陆使用的一种汉字编码标准,基于GB2312并兼容...
在实现中,它可能利用了ArrayBuffer、DataView等低级别的JavaScript数据类型,将UTF-8字符转换为GBK编码的字节序列。 2. `decodeGBK(buffer)`: 这个函数接收一个GBK编码的字节序列(通常是ArrayBuffer或Uint8Array...
UTF8文件编码转换器是一种工具,它允许用户将文件从一种字符编码格式转换为UTF-8编码格式。在计算机科学和网页开发领域,文件编码是非常关键的,因为它决定了文本如何被正确地读取和显示。UTF-8是目前最常用的多语言...
网站模板编码转换小助手是一款小巧的编码转换工具,快来... 软件功能 本软件可以将网站模板编码批量由UTF8转换成GBK模式或者有GBK模式批量转换为UTF8模式,目前支持.htm、.html、.php、.js、.css等常用格式编码转换。
在本案例中,我们关注的焦点是“GB转UTF8字符工具”,这是一款用于转换代码文件编码的实用程序,主要功能是将GB2312、GBK编码的文件转换为UTF-8编码,或者反过来,将UTF-8编码的文件转换为GB2312或GBK编码。...
需要注意的是,虽然本例中使用了GBK编码,但如果你的文本文件使用了其他编码(如UTF-8),则需要在`native2ascii`命令中指定正确的编码格式。例如,如果文件是UTF-8编码,应使用`-encoding utf-8`。 总之,将中文...
由于其广泛支持和跨平台兼容性,UTF-8已经成为互联网上最常用的字符编码。 在处理不同编码格式的文件时,可能会遇到乱码问题。例如,一个GBK编码的文件如果用UTF-8方式打开,可能会出现无法识别的字符。此时,就...
然而,由于UTF-8使用变长字节表示字符,所以与固定长度的GBK编码相比,相同内容的文件大小可能会更大。 批量转码工具的使用通常包括以下步骤: 1. **选择源目录**:首先,用户需要指定包含待转换文件的源目录,这些...
在JavaScript中,编码转换是处理不同字符编码格式之间转换的过程,比如从GBK(GB2312)到UTF-8,反之亦然。这在处理中文字符时尤其重要,因为不同的编码方式对汉字的支持和表示方式有所不同。以下是两种在JavaScript...