编码,charset,乱码,unicode,utf-8与.net简单释义(续)

上篇blog讲了一下unicode等编码的问题﹐不过并没有涉及程序﹐所以这次就用.net来证实一下上次的这些东东。

在证明那些东东之前﹐首先把.net中关于处理encoding,二进制,16进制,byte等相关类别和方法罗列一下。

1.byte与string(那些255以内的整数)的相互转换(各种进制之间的相互转换)

使用System.Convert类别

string to byte

Convert.ToByte(string,base)

base:2表示二进制,8表示八进制,10表示十进制,16表示十六进制(你要输入33,呵呵﹐异常)

这样可以把字符串的(0--255)转成一个byte

Convert.ToByte("01000001",2)转成 65

Convert.ToByte("255",10)转成255

Convert.ToByte("42",16)转成66

同理﹐byte to string也是Convert类

Convert.ToString(byte,base)

同样可以转成相应的进制表示的字符串

通过这两个方法﹐我们要进行2,8,10,16进制的相互转换就容易了

2.char,int,long,boolean等与byte[]之间的相互转换(这些数据在内存中的存储状况)

使用System.BitConverter类别

我们都知道char,int,long等基本类型是以字节形式存在内存中的﹐所以要查看其内存存储方式则直接使用BitConverter.GetBytes()就可以了

然后再使用BitConverter.ToString(byte[])就可以以string方式查看了(如:f9-03表示2个字节)

string是由char组成的﹐只要foreach(char in string)就可以看到string的存储方式了(实验表明﹐string在内存中是以unicode编码存在的,下有示例)

时间: 2016-01-18

编码,charset,乱码,unicode,utf-8与.net简单释义(续)的相关文章

编码,charset,乱码,unicode,utf-8与.net简单释义

很久没有写blog了﹐今天下午工作刚好告一段落﹐有点时间﹐就把上周花了很多时间总结出来的一些计算机字符相关的心得写出来﹐希望能够帮助当初和我一样迷茫的人能够容易理解﹐也希望能够引出玉来(这么多废话﹐还不快开始...) 由于公司使用的是繁体操作系统﹐而我有时习惯在自己家里的简体计算机上写一些程序﹐但是当我用U盘把代码在两者之间copy时﹐经常发现文件中文的地方成了乱码﹐所以就花了些时间到网上查了一下﹐发现有很多关于乱码问题的讨论﹐按自己的方法总结了一下(有不对的地方﹐还希望各位指出): 1.文件分

字符编码知识:Unicode、UTF-8、ASCII、GB2312等编码之间是如何转换的?

转自:  http://apps.hi.baidu.com/share/detail/17798660 字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得字符编码的知识.不注意的人可能对这个不在意,但这些名词有时候实在让人迷惑,对想学习计算机知识的人来说,搞懂它也十分重要,我也是在学习中慢慢了解了一些这方面的知识. 1. ASCII码      在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被

图片-VC 中编码转换乱码问题

问题描述 VC 中编码转换乱码问题 为什么a是'{'??? 解决方案 http://www.guokr.com/blog/763017/ 检查转换是否正确,编码的选择等 解决方案二: 编码转换是否正确 对应编码格式支持吗

oracle-Oracle数据库编码US7ASCII 乱码问题

问题描述 Oracle数据库编码US7ASCII 乱码问题 开发过程中遇到一个问题,Oracle数据库编码是 US7ASCII, 在显示数据库中文内容时,页面显示的全部是乱码, 正常的应该将数据库编码改为 ZHS16GBK 就可以了, 但是目前 由于数据库环境不能变,有没有别的办法正常显示数据库的内容 解决方案 Oracle数据库编码一般是 ZHS16GBK,但是 遇到一个Oracle数据库是 US7ASCII编码,在显示中文的时候遇到了问题,出现乱码下面给出如下解决方式: 步骤一:读取编码的配

java中unicode和中文相互转换的简单实现_java

如下所示: package test.com.gjob.services; import java.util.Properties; public class Test { public static void main(String[] args) { String s = "简介"; String tt = gbEncoding(s); // String tt1 = "你好,我想给你说一个事情"; System.out.println(decodeUnicod

编码、乱码问题

原文: http://gsdhaiji-cai.iteye.com/blog/1148049 一.编码进程 [01编码]--很久很久以前,为了表示二极管的通.分,我们引入的高电平.低电平,之后又引入的1.0编码进行代替   [ASCII编码]--很久以前,也就是上个世纪60年代,美国佬为了把计算机的"0101010"编码与文字进行对应起来,制定了一套ASCII编码方案.人总是自私的,他只对自己的语言进行编码,26个字母.数字.其他符号,只用了7位二进制数搞定,第一位用0表示,预留着.所

计算机中的字符串编码、乱码、BOM等问题详解_相关技巧

因为电脑是windows 7系统,开发环境又在linux,经常在linux碰到乱码问题,很是痛苦,于是决定好好了解编码的来龙气脉,并分享个各位,免得出现乱码时不知所措. 是否存在文件编码 在讲解字符编码之前,我们需先明确文件本身没有编码一说,只有文字才有编码的概念,我们通常说某个文件是什么编码,通常是指文件里字符的编码. vim为什么会出现乱码 我在linux下一般使用vim进行文件编辑,发现经常会碰到乱码的情况,那么为什么会出现乱码呢? 首先我们了解下vim编码方面的基础知识,关于编码方面vi

ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明_应用技巧

出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面所以会乱码. 为了这个问题烦了我一个早上,终于的蓝色理想上得到解决. 首先让我们来了解一下Session对象提供了四个属性. 1.CodePage 读/写.整型. 定义用于在浏览器中显示页内容的代码页(Code Page).代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页.例如,ANSI代码页 1252用于美国

android POST数据遇到的UTF-8编码(乱码)问题解决办法_Android

今天遇到这样一个bug:客户端POST到服务器的一段数据导致服务器端发生未知异常.服务器端确认是编码转换错误.于是截取网络数据包进行分析,发现客户端POST的json数据中包含下面一段(hex形式): 复制代码 代码如下: ... 61 64 20 b7 20 52 69 63 ... 问题就出在这个b7上.查阅Unicode代码表后发现,U+00b7是MIDDLE DOT,它的UTF-8表现形式应该是c2 b7,但为何客户端发送的数据中它变成了b7? 由于系统使用了ormlite.gson和a