这是我之前发表在新浪博客里的技术文章,一并转过来收集。
U5317U4eac
这样的Unicode编码中文编码字符,经常会出现在iOS开发过程中。在断点调试的时候,控制台打印出来的都是这种编码,而不是中文,如何打印输出这种文字,真的很头疼。
之前在唐巧的博客中,看到他提到,可以在系统终端中,使用” echo”命令来将Unicode的字符转义成中文,可是在自己的mac上试验却始终不成功。今天在QQ群里再次看到别人可以使用这一命令来输出中文,正好比较闲,就搜索了一下问题的解决方案。
从万能的谷歌那里找到问题的根源,是由于Mac自带的终端bash版本过低,3.8.x
的版本,无法支持echo 输出中文。那么只要将系统自带的bash升级到最新版本(至少要4.2.x以上
)即可。
首先在终端中执行以下命令,用来安装bash最新版本:
brew install bash
(很多人在这一步失败,那是因为你没有安装 brew, 请参考这篇文章安装
或者直接执行:
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
安装
在命令执行结束后,你会看到bash被安装到那个目录下(类似 /usr/local/bash/4.x.x),记录下来,在这个目录后加上”bin/bash“内容,形成类似:/usr/local/bash/4.x.x/bin/bash 这样的完整路径,复制这个完整路径。
执行:
sudo vim /etc/shells
修改/etc/shells文件,将刚才的完整路径复制到这一文件中,执行:wq!保存退出
执行
chsh
将其中一行类似”Shell:
/usr/local/bin/bash” 中Shell: 后的路径,改成刚才的完整路径。
继续 :wq! 保存退出
重启终端
执行
echo $BASH_VERSION
如果输出的版本是4.2.x或者更高,现在你就可以在终端中,使用
echo -e "U5317U4eac"
来输出中文了!恭喜!注意,是echo -e
+需要输出的字符串
PS:如果在chsh命令里修改的路径错误,退出重启终端会因为无法载入bash出错,这时,可以使用终端的偏好设置》启动 中的Shell的打开方式,使用命令(完整路径): /bin/bash来使用系统默认的bash启动终端,当然,这里使用命令也可以使用上面的完整路径来直接启动最新版本的bash。
参考链接:
修改系统默认Shell:
http://blog.yuaz.net/archives/292
Upgrade Bash to 4+ on OS X
http://buddylindsey.com/upgrade-bash-to-4-on-os-x/