Skip to main content

C#中的字符编码

最近买了新的笔记本。Mac OS X的系统,并且将以前本子上的一些中文歌考了上去。在用iTune和Cog播放的时候都没能正确的把歌名识别出来。今天在网上查了查MP3格式的资料。一般来说,这些播放器都只会读取ID3V1的信息,所以我尝试自己写一个小东西来查看ID3V1的信息。实际上,如果你使用的Window XP的话,只需要查看MP3文件的属性,就能很容易的看到ID3V1的信息。


MP3文件,可以简单的看作是个二进制的文件,而一个标准MP3文件的最后128个字节最是它存放ID3V1信息的地方,我使用下面的代码来读取:
FileStream stream = System.IO.File.OpenRead(@_filePath);
byte[] buf = new byte[128];
stream.Seek(-128, SeekOrigin.End);
stream.Read(buf, 0, 128);

开始我使用ASCIIEncoding来解析byte[]。发现所有的ID3V1为英文的都能很容易解析出来。但是对中文没有办法。换为UnicodeEncoding以后,中文、英文都乱了。直到我发现System.Text.Encoding.Default可以很好的解析英文和中文的。我的OS是英文版的Window XP,但是“Language for no-Unicode programs”让我改为了“Chinese(PRC)”。在实际运行中System.Text.Encoding.Default的值实际上是:System.Text.DBCSCodePageEncoding但是在MSDN没有找到和System.Text.DBCSCodePageEncoding相关的资料。大概查了一下,只知道DBCS是个包含ANSI,gb2312,GBK的亚洲字符的编码格式。


如果有碰到同样问题的朋友不妨试一下。

Comments

Popular posts from this blog

asp.net Single Sign-On(SSO) from SAP

公司的主系统是SAP的东西,有的时候老板想要一些小的新功能或是某个部门需要一个自己使用的小系统又不想买SAP的东西(贵啊),只有自己写和使用一些第三方免费或是开源的系统,这个时候就难免涉及到 Single Sign-On 。而在asp.net 2.0下是非常容易实现的。有SAP提供的“Sapsecu.dll”,“sapssoext.dll”2个dll再加上由公司SAP系统提供的"verify.pse"就足够了。 第一步 复制Sapsecu.dll到system32目录,并使用Rersrv32注册。 第二步 在项目里添加对sapssoext.dll的引用,vs2005会自动生成Interop.SAPSSOEXT.dll来让.net使用。 第三步 在你项目的根目录创建sap目录,并将SAP系统那边提供的verify.pse复制过去。位置倒到不是一定要在这里,只要你找得到就好。 第四步 在SAP系统那边,需要生成一个类似:http://yourserver/login.aspx?sso=werwerwerwe的链接,当然具体的页面需要你和那边的管理员商量来决定。这个链接是有时效性的,我在做测试的时候他们给的测试链接通常只能用一天。现在我们要做到就是我们这边的编码,在login.aspx的page_load里面实现: protected void Page_Load(object sender, EventArgs e) {   string sso= Request.QueryString["sso"];   SAPSSOEXT.SSO2Ticket objSSO = new SAPSSOEXT.SSO2Ticket();   objSSO.CryptLib = "sapsecu.dll";   string strKeypath = Server.MapPath("~/sap/verify.pse");    //放在根目录比较容易找   object tt;   tt = objSSO.EvalLogonTicket(strTicket, strKeypath, String.Empty); ...

广电总局的口味

以下是对近年来广电总局各种禁令的详细统计. 1.2002年,全民热捧《流星花园》的时候,广电总局下令停播,让很多播了一部分和买了没有播的电视台损失惨重. 2.2004年,广电总局规定不得在黄金时段(19:00-22:00)播出境外影视剧. 3.2004年,广电总局规定黄金时间不得播放“凶杀暴力涉案剧”、禁止网络游戏类节目播出、“红色经典”不许戏说. 4.2005年9月,广电总局发布《广电总局关于禁止以栏目形式播出境外动画片的紧急通知》. 5.2006年3月,广电总局规定跨省赛事参赛选手年龄必须年满18岁,这给了“超女”等选秀节目当头一棒. 6.2006年3月,广电总局颁布政策:主持人须通过道德考核上岗. 7.2006年3月,广电总局要求停播地方方言译制的境外广播电视节目,说方言的《猫和老鼠》等只能通过碟市求生. 8.2006年4月,广电总局规定《超级女声》主持人不得有倾向性、要张扬主旋律等. 9.2006年8月,广电总局下令9月1日起各级电视台黄金时间不得播出境外动画片. 10.2006年9月,禁止视频断片在网络上随意传播,必须取得许可证. 11.2007年1月,规定卫视黄金档只能播放主旋律影视作品 下面有人回帖: 由 站点访客 于 Wednesday, 03月21日 @ 17:15:35 CST 从这些可以看出: 光电的只喜欢亚洲的 不喜欢欧美的 不喜欢重口味 不喜欢幼女 不得倾向性就是指标准制服 张扬主旋律指的是姿势不能过于大胆. 来源: cnbeta