June 22nd, 2009
Tags: Chinese, iPhone, iPod Touch | Posted in Mac | No Comments »
剛剛升級到 iPhone OS 3.0,就聽說音樂終於可以按照拼音排序了!我有好多中文歌曲,以前都只能在分類 123 裡找,而且每次的排序都不一樣。
稍微設置了一下,發現只有在 International -> Language 裡設置為“簡體中文”才可以按照拼音排序。設置好之後再進入“音樂”,iPhone OS 會更新資料庫內容,之後就可以在各個字母分類中看到中文歌曲了。

不過限制就是必須要用簡體中文介面。
No Comments »
June 18th, 2007
Tags: Ajax, Chinese, Ruby on Rails | Posted in Web | No Comments »
今天在写 Ruby on Rails 的时候发现,AJAX 传回中文数据会出现乱码。搜索以后发现原来可以这样做。在 controller 中加入
before_filter :set_charset
def set_charset
@headers["Content-Type"] = 'text/html; charset=gb2312";
end
我很懒,直接写到 ApplicatiopnController 中了,搞定。
No Comments »
December 25th, 2006
Tags: Chinese, cjk, Japanese, Korean, Mac, textmate | Posted in Mac | 2 Comments »
TextMate 是 Mac OS X 下著名的编辑器,相信很多看过 Ruby on Rails Screencast 的开发者都对它有深刻的印象 —— 流畅的生成固定格式代码(Snipper),方便的 Project 管理,以及像老牌编辑器 BBEdit
一样使用 unix 命令来过滤文本内容。但是 TextMate 对于在开发过程中使用中、日、韩文字的开发着来说却有一些麻烦。
- 无法正确显示 CJK 字符
- 无法正确输入 CJK 字符
好在 Hetima 提供了两种可以间接解决问题的办法:
显示 CJK 字符
大多数 CJK 字体都是 2 字宽,在 TextMate 下会和后边的 CJK 字符重叠在一起。(没有使用标准的 NSView?)对于这个问题 Hetima 提出了用 缩小日文字体宽度 的办法来解决,不过实际上最后的效果有点见仁见智。我照猫画虎的用中文字体做了一些实践,下面把大致的步骤写一下。
字体变形有许多选择:从超贵的 FontGrapher 到开放原始码的 FontForge,按照 Hetima 的介绍我们用 FontForge 就可以。用 FontForge 读取 .dfont 或者 .ttf 文件,然后用 Scale() 和 MergeFonts()
方法来变形、合并字体。要注意的是 FontForge 需要 X11 环境的支持,如果你在安装 Mac OS X 的时候没有安装过,可以在第一张安装盘中的 Optional Install 中安装。脚本中使用了 2 款字体,都是可以在 Mac OS X 中找到的(/System/Library/Fonts/)。如果你想要“华文黑体”(STHei.ttf)而不是“黑体”(Hei.dfont),那你需要 动一点小手脚 —— STHei.ttf 受 FSType/2 保护,FontForge 在脚本中是动不到它的。当然你也可以用任意两种免费的中英文字体进行组合。
把 Hei.dfont 和 Monaco.dfont 两款字体复制到同一文件夹中,(比如 ~/tmfont/)然后建立文本文件 tmfont.pe:
#!/usr/local/bin/fontforge -script
#中文字体处理
Open("Hei.dfont"); #中文字体
SelectAll()
foreach
Scale(60, 100, 0, 0) #横0.6,纵1.0
endloop
Generate("temp.ttf", "", 0x14)
Close()
#Monaco 字体合并
Open("Monaco.dfont"); #英文字体
MergeFonts("temp.ttf");
SetFontNames("TextMate-Regular", "TextMate", "TextMate Regular", "Regular", "")
Generate("TextMate.ttf", "", 0x14)
Close()
这样就差不多了。开启 X11 环境(/Applications/Utilities/),在 term 中赋予 tmfont.pe 执行权限并执行:
chmod +x tmfont.pe
./tmfont.pe
之后,你应该能在目录下找到 TextMate.ttf,安装这个字体就可以啦。

使用了自定义字体的 TextMate
相比显示 CJK 字符来说简单多了:下载安装 Hetima 的 CJK-Input.tmplugin。(Kudos to Hetima again.)
Links
TextMate 的主页上称 TextMate 2.0 将使用 Leopard 中的 CoreText(也就是说想用 2.0 就必须要买 10.5 :-|),作者承诺届时 CJK 支持问题将得到彻底解决。
我在写代码的时候不常用到中文,也许写注释给别人看的时候会用到。虽然这个方法显示的文字略显小,不过聊胜于无,希望对同样使用 TextMate 的朋友有所帮助。
2 Comments »