哎,尽信书不如无书啊!
今天乐滋滋的把Ubuntu升级到了8.10正式版,用着很是高兴,因为困扰我好久的x3100的显卡问题终于解决了,感觉8.10的细节UI也改善了很多.
结果乐极生悲,我在放歌的时候发现mp3的标签是乱码,于是跑去翻Wiki,因为我以前在Wiki上看到有这个的解决办法.解决这个问题主要是要进行编码转换,用到convmv, iconv, python-mutagen这几个工具,俺按照教材用了以下命令:
sudo apt-get install convmv iconv python-mutagen
convmv -r -f cp936 -t utf8 --notest --nosmart *
find . -iname "*.mp3" -execdir mid3iconv -e GBK {} ;
结果标签是好了,文件名全成乱码了,囧.......
然后我man convmv 才发现--notest和--nosmart的意思,不加notest的话convmv会先模拟转换一下,如果你看到
是正确的再转换,而不加nosmart的话它会自动检测原来的字符串是不是utf8的,是的话就不会再转码了.
一失足成千古恨啊.
关于"乱码"的文章
这个乱码问题已经烦了一两天了,搞的我烦躁异常,我已经都racking my brain了还是不行.......
以前一直没有定位到函数的问题。发现这个问题是在我在做一个汉化工作的时候。语音文件是用php写的数组,一般来讲这种工作很好做,只要将原始的语言文件翻译成另外一种语音的就好了,然后再注意一下文件编码之类的。可是这次不行了,估计是我局限思维了,就只想到了编码问题,太嫩了啊!
今天突然看到在模板输出了的时候通过一系列的关联然后调用了htmlentities()函数,我感觉到这里有问题。于是在调用前输出一下需要转换的字符串,哈哈,果然没错!
首先要说的是这个问题太气人了,害我搞了一天才发现是这个问题,大坏蛋!而且又这么隐秘,用他们的话说就是:一般人不知道。
在集成UCenter的时候,连接测试老是不成功,但是我写的日志又证明是对的,简直是郁闷至极,于是认为肯定是UCenter的问题,所以开始研究它的结构,看函数,这里花了半天时间.........
好不容易找到了它的测试函数,这个函数叫onping(),使用get_url_code()构造出client端的url及参数后再调用test_api()进行测试。找到这个函数后当然就比较容易了。server和client连接测试成功的话一般是返回一个string类型的1,但是有一个诡异的问题就是我查看返回的这个值,明明是个1,但是在用var_dump输出的时候却显示的是string(4)。我郁闷了,这也太诡异了吧,我猜测是不是哪里有输出空白什么的,因为如果是乱码的话打印在浏览器上有时候不会显示出来,但是strlen()函数则是可以得到它真正的长度的。
先了解下Json(资料来自www.json.org):JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language(http://www.crockford.com/javascript), Standard ECMA-262 3rd Edition - December 1999(http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
试了N多方法,貌似在终端执行命令:export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312是最有效的。

最新评论