Linux下MP3歌曲信息乱码之贱人解决方案
转载:
现在linux下有越来越多的优秀的播放软件,xmms,m-player,beep-media-player,totme,rhythmbox,等等等等,但是这些播放软件都不能很好的解决mp3文件中文信息乱码的问题。
究其原因,现在网上绝大多数(99%以上)的mp3都是网友在windows下压制的,文字信息编码方式自然是GBK,到了linux下面就没有lftp那么幸运都可以设置显示编码方式了,
网上google过好多次,都没有完美的解决方案。今天整理系统的时候突然想到能否通过改变系统环境编码方式来实现对beep-media-player这一类软件的强制更改编码呢?说干就干。。
sudo vi /etc/environment
把所有的zh_CN.UTF-8改成zh_CN.GBK,重启。。。
打开beep-media-player,bingo!!!居然如我想象得一样,,所有歌曲信息都能正常显示了!
但是由于环境变成了GBK,导致terminal中原本UTF-8的文件名无法正常显示了。。这个会影响到工作。。也不是办法。。怎么办好呢?
咦,在bash shell下export一个的变量不是仅对当前终端有效嘛?当终端重启或者开启另外一个终端时候,export即失效。那我就可以先把LC_CTYPE 跟LANG改export成zh_CN.GBK,启动播放器之后再export回来zh_CN.UTF-8,这样连当前终端工作都不会影响到。太棒了!
再偷懒一下,把这些步骤通通写成一个bash shell,
export LC_CTYPE=zh_CN.GBK
export LANG=zh_CN.GBK
/usr/bin/beep-media-player & //这里一定不要漏掉“&”符,让播放器后台运行。不然会占用掉当前命令行,从而影响到下面两行的执行。
export LC_CTYPE=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
保存成mp3.sh
chmod 777 mp3.sh
./mp3.sh
启动起beep-media-player,哈哈,显示正确!
再用env查看一下当前环境变量。。完全没有问题。
之后发现这种方法虽然贱。。但是还真挺有效的,可以欺骗任何不能设置程序运行编码方式的软件(或者有些软件支持,但是你不知道如何在conf里写。。),~狼里个狼~
相关文档:
如何编译Linux的内核. 内核,是一个操作系统的核心。它负责管理系统的进程、内存、 设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件, 在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许
http://www.phpv.net/article.php/40
如何编译Linux内核- Linuxer ......
配置文件一览表 文件位置及名称,作用
/etc/rc.d/rc.sysinit
系统启动时的公用服务配置
/etc/rc.d/rc.local
系统启动时的本地服务配置
/etc/bashrc、/etc/profile
bash shell的公用配置
/home/username/.bashrc
各用户私人bash shell配置
/etc/securetty
终端安全设置
......
linux目录架构
/ 根目录
/bin 常用的命令 binary file 的目錄
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
/boot/grub/menu.lst GRUB设置
/boot/vmlinuz 内核
......
1. tr 命令的功能
tr命名是简化了的sed命令。其主要的功能包括:
a. 用一个字符来替换另外一个字符。
b. 删除字符串中的指定子串。
c. 合并字符串中重复串。
2. 常见的命令格式:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
-c 用字符串1中字符集的补集替换此字符集, ......