在我的 Mac 终端上,打印 UTF-8 可以正常工作,但less不能正常工作。
所以这可以正常工作:
$ echo -e '\xe2\x82\xac'
€
Run Code Online (Sandbox Code Playgroud)
但是将其管道化为 less 给出了这样的东西:
$ echo -e '\xe2\x82\xac' | less
<E2><82><AC>
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
对于诊断:
我使用的是 Mac OS 10.6.8。少版本 418,终端 2.1.2 (273.1)。
我的语言环境的输出是这样的:
$ locale
LANG="en_US.UTF-8"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
Run Code Online (Sandbox Code Playgroud) 我有一个运行 FreeNAS 8 的家庭文件服务器。几天前,我使用 rsync 从 Mac 上传我的整个 iTunes 库,以便我可以通过网络加载我的库,而不是从慢速 USB 驱动器上加载。这基本上有效,现在 iTunes 运行得更好,但我在访问任何包含非 ascii 字符的歌曲时遇到问题(我在加载 Queensrÿche 曲目时第一次注意到这个问题)。这些文件会显示在 Finder 中,但任何访问它们的尝试都会使它们消失,直到我重新连接到服务器。
经过一番研究,我发现这是因为 OSX 使用与 Linux 不同的 UTF 字符顺序。OSX 文件系统使用 Unicode Normalization Form D (NFD),而 linux 使用 Form C (NFC)。Rsync 在执行从我的 mac 到服务器的复制时不会转换这些形式,现在当 iTunes 尝试通过网络访问具有特殊字符的文件时,服务器上的文件的编码错误并且 afpd 报告它们没有存在。
解决这个问题的最佳方法是什么?是否可以在将基本库上传到服务器时让 rsync 执行 unicode 转换?我可以将 afpd 配置为以 NFD 格式传输/接收文件名吗?有没有简单的解决方案来更改服务器上的文件名?我发现了一些关于名为 convmv 的程序的内容,但我不知道是否可以在 FreeNAS 上运行它。
如何在 Windows 7 中获取系统区域设置?
我的意思是这样的:cs_CZ.UTF-8
我尝试在命令行中编写“locale”,但这在 Windows 中不起作用。有什么建议?
我正在 CentOs 5 上为 perl 设置 CPAN 模块,问题之一是“您的终端是否支持 UTF-8?” (释义)。我怎么知道?
我create database dbname;用来创建数据库。
但我希望它使用字符集 UTF-8 创建
任何人都知道要使用的命令是什么?
如何找出当前文件系统使用的字符集编码以及如何将其更改为 UTF-8?
编辑:
这是挂载的输出:
/dev/sdb6 on / type ext3 (rw,relatime,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,nosuid,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
lrm on /lib/modules/2.6.27-11-generic/volatile type tmpfs (rw,mode=755)
securityfs on /sys/kernel/security type securityfs (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type …Run Code Online (Sandbox Code Playgroud) 我希望能够渲染此推文中所见的字符:

我保存了推文的 JSON 数据并编写了一个单行 Python 脚本进行测试。
python -c 'import json,urllib; print json.load(urllib.urlopen("http://c.sente.cc/BUCq/tweet.json"))["text"]'
Run Code Online (Sandbox Code Playgroud)
下图显示了此命令在两个不同的腻子会话中的输出,一个使用Bitstream Vera Sans Mono字体,另一个使用Courier New:

接下来是正确输出的示例(我没有使用 PuTTY):

原始 JSON 位于此链接,使用 Twitter 的 API。
如何让 PuTTY 显示这些字符?
我无法在 Ext3 文件系统上保存名称包含超过 127 个西里尔文 UTF-8 符号的文件。不过,可以保存最多包含 255 个英文 UTF-8 符号的文件。
那么包含文件名的字节数或文件名中的字符数是否有限制?例如,在前者的情况下,人们会期望对中文文件名长度进行更严格的限制。那正确吗?
在 UTF8 和非 UTF8 字符串出现一些问题后,我们正在对 UTF8 进行标准化。我需要做的一件事是检查 MySQL 数据库中的所有内容是否都在 UTF8 中?我需要检查什么?
我正在考虑将所有这些放在 nagios 插件中以检查所有内容是否都在 UTF8 中。建议?