c# UTF-16转UTF-8 互转
/// <summary>
/// UTF-16转UTF-8
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string UTF16To8(string str)
{
string res;
int i, len, c;
res = "";
len = str.Length;
; i < len; i++)
{
c = Convert.ToByte(str[i]);
if ((c >= 0x0001) && (c <= 0x007F))
{
res += str.CharAt(i);
}
else if (c > 0x07FF)
{
res += Convert.ToChar() & 0x0F));
res += Convert.ToChar() & 0x3F));
res += Convert.ToChar() & 0x3F));
}
else
{
res += Convert.ToChar() & 0x1F));
res += Convert.ToChar() & 0x3F));
}
}
return res;
}
/// <summary>
/// UTF-8转UTF-16
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string UTF8To16(string str)
{
string res;
int i, len, c;
int char2, char3;
res = "";
len = str.Length;
i = ;
while (i < len)
{
c = Convert.ToByte(str[i++]);
)
{
:
:
:
:
:
:
:
:
// 0xxxxxxx
res += str.CharAt(i - );
break;
:
:
// 110x xxxx 10xx xxxx
char2 = Convert.ToByte(str[i++]);
res += Convert.ToChar(((c & ) | (char2 & 0x3F));
break;
:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = Convert.ToByte(str[i++]);
char3 = Convert.ToByte(str[i++]);
res += Convert.ToChar(((c & ) |
((char2 & ) |
((char3 & ));
break;
}
}
return res;
}
public static class te
{
/// <summary>
/// 返回指定位置字符
/// </summary>
/// <param name="str">原字符串</param>
/// <param name="index">字符索引,长度超出时返回:' '</param>
/// <returns></returns>
public static char CharAt(this string str, int index)
{
if (index > str.Length)
return ' ';
);
return Convert.ToChar(res);
}
}
c# UTF-16转UTF-8 互转的更多相关文章
- RGB与16进制色互转
点击进入新版 <前端在线工具站> CSS, JavaScript 压缩YUI compressor, JSPacker...HTML特殊符号对照表PNG,GIF,JPG... Base ...
- python进制转化函数,10进制字符串互转,16进制字符串互转
来了老弟,emmmmm,今天想到平时经常用到编码转化,把字符串转化为16进制绕过等等的,今天想着用python写个玩,查询了一些资料,看了些bolg 上面的两个函数是将二进制流转化为16进制,data ...
- js 16进制字符串互转
/** * 16进制转换为字符串 * @param hex * @returns {*} */ function hexToString(hex) { var tmp = ''; if (hex.le ...
- jmeter-Java关于MD5加密方法 以及16位32位互转
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现.将 ...
- Java-byte[]与16进制字符串互转
转自: http://www.cnblogs.com/freeliver54/archive/2012/07/30/2615149.html Java中byte用二进制表示占用8位,而我们知道16进制 ...
- BYTE数组与16进制字符串互转
//字节数组转换为HEX 字符串const string Byte2HexString(const unsigned char* input, const int datasize) { ]; ; j ...
- java中byte[] 和16进制字符串互转
//将byte[]转换为16进制字符串 public static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder() ...
- UTF—8与UTF—8(无bom)格式
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在U ...
- python标准库之字符编码详解
codesc官方地址:https://docs.python.org/2/library/codecs.html 相关帮助:http://www.cnblogs.com/huxi/archive/20 ...
- Unicode、UTF-8 和 ISO8859-1到底有什么区别
说明:本文转载于新浪博客,旨在方便知识总结.原文地址:http://blog.sina.com.cn/s/blog_673c81990100t1lc.html 本文主要包括以下几个方面:编码基本知识, ...
随机推荐
- css变换transform 以及 行内元素的一些说明
变换transform的用法比较简单:[变换其实和普通的css属性,如color等没什么区别,可以为变换应用过渡或动画,就像其他普通css属性一样]#test { transform: transla ...
- 14.2.4HTML5约束API验证
<body> <form> <!-- required属性在提交表单时不能空着 这个属性适用于<input> <textarea> <sel ...
- modbus转乐鑫物联网平台上传工具
乐鑫平台推荐个人用户使用 界面比较简洁
- 深度搜索优先(全排列)//本内容来自《啊哈!算法》或者英文名《Aha!Algorithms》)
package Mypackage; import java.util.Scanner; public class 全排列{ static int a[]=new int[10]; static ...
- 消息中间件——activeMQ
Activemq使用教程 解压activmq进入bin\win64 启动activemq.bat 启动成功 浏览器访问http://127.0.0.1:8161 创建maven工程 在pom.xml中 ...
- maya2019卸载/安装失败/如何彻底卸载清除干净maya2019注册表和文件的方法
maya2019提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装maya2019失败提示maya2019安装未完成,某些产品无法安装,也有时候想重新安装maya ...
- [CocoaPods]常见问题
“现在Swift有一个内置的包管理器,CocoaPods会停止开发吗?” Swift Package Manager(SPM)处于“早期设计和开发”阶段[1].它目前不支持iOS,观看操作系统或Obj ...
- javaweb目录结构简介
以上图说明: bbs目录代表一个web应用 bbs目录下的html,jsp文件可以直接被浏览器访问 WEB-INF目录下的资源是不能直接被浏览器访问的 web.xml文件是web程序的主要配置文件 所 ...
- go微服务框架go-micro深度学习 rpc方法调用过程详解
摘要: 上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取serv ...
- Java SE 9(JDK9)环境安装及交互式编程环境Jshell使用示例
目的 安装JDK 9, 练习Jshell工具的使用, 体验Java的交互式编程环境. 什么是Jshell 其实就是一个命令行工具,安装完JDK9后,可以在bin目录下找到该工具,与Python的解释器 ...