package com.cloud.tools;
import java.io.UnsupportedEncodingException;
/**
* utf8 to gbk gbk to utf8
*
* @author dell
*
*/
public class Utf8ToGbk {
//utf-8 -> gbk
public static String utfToGbk(final String str) {
String utf8 = "";
String gbk = "";
try {
utf8 = new String(str.getBytes("UTF-8"));
//转为为unicode 字符串
String unicode = new String(utf8.getBytes(), "UTF-8");
gbk = new String(unicode.getBytes("GBK"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return gbk;
}
//gbk -> utf-8
public static String gbkToUtf8(final String str) {
String utf8 = "";
try {
utf8 = new String(getUTF8BytesFromGBKString(str),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return utf8;
}
public static byte[] getUTF8BytesFromGBKString(String gbkStr) {
int n = gbkStr.length();
byte[] utfBytes = new byte[3 * n];
int k = 0;
for (int i = 0; i < n; i++) {
int m = gbkStr.charAt(i);
if (m < 128 && m >= 0) {
utfBytes[k++] = (byte) m;
continue;
}
utfBytes[k++] = (byte) (0xe0 | (m >> 12));
utfBytes[k++] = (byte) (0x80 | ((m >> 6) & 0x3f));
utfBytes[k++] = (byte) (0x80 | (m & 0x3f));
}
if (k < utfBytes.length) {
byte[] tmp = new byte[k];
System.arraycopy(utfBytes, 0, tmp, 0, k);
return tmp;
}
return utfBytes;
}
public static void main(String[] args) {
System.out.println(utfToGbk("中文测试"));
System.out.println(gbkToUtf8("455测试中文"));
}
}
相关推荐
本文将深入探讨C语言中如何实现GBK与UTF-8的互相转换,同时不依赖任何外部库。 GBK是中国大陆广泛采用的一种汉字编码标准,它是GB2312的扩展,包含了更多的汉字和符号,能够覆盖大部分中文字符。UTF-8则是一种多...
当UTF-8字符串中包含GBK不支持的字符时,转换可能会失败或者产生乱码。因此,在进行编码转换时,需要确保清楚源字符串的编码类型,并且在转换前后进行适当的错误检查和处理。 总的来说,理解和掌握UTF-8和GBK这两种...
Console.WriteLine("GBK转UTF-8后的字符串:" + utf8Str); } } ``` 在这个例子中,`Encoding.GetEncoding("GBK")`获取了GBK编码器,`GetBytes()`方法将GBK编码的字符串转换为字节数组,然后`Encoding.UTF8....
### GBK与UTF-8转码(C++) #### 知识点概述 本文将详细介绍如何在Microsoft Foundation Classes (MFC)环境下实现GBK与UTF-8之间的编码转换。该技术适用于那些需要处理不同字符集数据的应用程序开发场景,特别是在...
在IT领域,字符编码是一个非常重要的概念,尤其是在处理多语言文本时。...在给定的压缩包文件“bmhzgj”中,可能包含的就是一个用于实现UTF-8与ANSI字符互转的工具,用户可以下载并使用它来解决实际问题。
文件包含:gbk2utf-8.bat、utf-82gbk.bat、iconv.exe及使用说明.txt四个文件 使用说明:1把要转换的所有.h和.c文件拷入该目录下,双击相应的bat文件即可。 2转换结果会保存在utf-8Res或gbkRes目录下。 3如果转换除...
对于GBK到UTF-8的转换,首先需要将GBK编码的每个双字节视为一个独立的字符,然后查找对应的Unicode码点,最后按照UTF-8的规则将其转换成1至3个字节的序列。相反,从UTF-8到GBK的转换则需要识别出UTF-8编码的字节序列...
- `gbk_to_utf8()`函数可能接收GBK编码的字符串作为输入,返回转换后的UTF-8编码字符串。 - `utf8_to_gbk()`函数则相反,它接受UTF-8编码的字符串,返回GBK编码的字符串。 6. **注意事项** - 转换过程中需要处理...
GBK与UTF-8之间的转换是一种常见的编码转换过程,在很多情况下,我们需要将GBK编码的字符串转换成UTF-8编码的字符串。然而,这种转换过程并不简单,需要我们了解编码的基本原理和规则。 首先,让我们了解一下GBK和...
- **UTF-8到ISO-8859-1再到UTF-8**: 类似地,通过这种方式也可以从乱码中恢复正确的字符串。 #### 五、结论 理解并熟练掌握不同字符编码之间的转换是非常重要的,特别是在处理国际化和多语言文本的应用程序中。...
例如,从GBK转到UTF-8,只需将GBK的宽字符转换为对应的UTF-8字节序列。 4. **编码**:将Unicode字符数组编码为目标编码。对于GBK,同样需要借助外部库或API;对于UTF-8,你可以手动构建字节序列,遵循UTF-8的规则。...
转换过程包括读取UTF-8编码的字符串,然后根据GBK编码规则重新排列字节,以生成GBK编码的字符串。这个过程中需要注意字节顺序和多字节字符的处理,以确保转换的准确性。 LabVIEW编程环境中,可以创建自定义VI(虚拟...
可能的类定义包括构造函数、析构函数以及`toGBK`和`fromGBK`这样的方法,分别用于将UTF-8字符串转换为GBK,以及将GBK字符串转换为UTF-8。 在`StringConvert.cpp`中,会实现这些声明的方法。转换过程通常涉及以下几...
4. **字符串处理技巧**:在易语言中,可以结合其他字符串处理函数,如`取字符串长度`、`截取字符串`等,配合`IsTextUTF8`来实现更复杂的文本操作,例如将非UTF-8字符串转换为UTF-8,或者从UTF-8字符串中提取特定部分...
例如,将一个UTF-8编码的字符串转换为Unicode编码的字符串: ```java String utf8Str = "中文"; String unicodeStr = new String(utf8Str.getBytes("UTF-8"), "UTF-8"); ``` #### 6. 示例分析 - **从GBK到ISO-...
本文将深入探讨如何在C++中处理UTF-8字符串,并介绍相关的关键概念和技术。 首先,C++标准库并没有直接支持UTF-8编码的内置类型,但是我们可以通过`std::string`类来间接地操作UTF-8字符串。`std::string`通常用来...
本文将详细解析“简单的UTF-8与GBK之间相互转码工具”,并介绍相关的编码概念和实现方法。 首先,让我们理解编码的基础知识。字符编码是用来表示文本的规则,常见的有ASCII、GBK(GB2312的扩展)、UTF-8等。ASCII是...
4. `utf8_to_ansi(char* utf8_str, char* ansi_str)`: 这个函数则将UTF-8字符串转换成系统默认的ANSI编码。与前面的转换不同,这里可能需要根据目标系统动态选择转换规则。 实现这些转换的关键在于理解和正确处理...
需要注意的是,不是所有UTF-8或GB2312编码的字符串都能相互转换,因为GB2312编码范围有限,不能表示UTF-8中的所有字符。在实际操作中,我们需要先检查输入字符串的编码类型,再进行相应的转换,以防止出现编码错误。...
在实际应用中,你可能需要在STM32的程序中调用这些转换函数,例如在接收网络数据时,先将接收到的UTF-8字符串转换为GBK,然后再进行处理或显示。反之,如果需要发送包含中文字符的数据,应确保先将GBK编码的字符串...