【发布时间】:2011-07-28 12:45:11
【问题描述】:
我正在对 Linux 语言环境文件 /usr/share/i18n/locales(如 pt_BR)进行一些更改,并且要求格式字符串(如 %d-%m-%Y %H:%M)必须以 Unicode 格式指定,其中每个(在本例中为 ASCII)字符表示为<U00xx>。
所以这样的文字:
LC_TIME
d_t_fmt "%a %d %b %Y %T %Z"
d_fmt "%d-%m-%Y"
t_fmt "%T"
必须是:
LC_TIME
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>"
t_fmt "<U0025><U0054>"
因此,我需要一个命令行脚本(无论是 bash、Python、Perl 还是其他),它会接受像 %d-%m-%Y 这样的输入并将其转换为 <U0025><U0064><U002D><U0025><U006D><U002D><U0025><U0059>。
输入字符串中的所有字符都是 ASCII 字符(从 0x20 到 0x7F),所以这实际上是一种更高级的“字符到十六进制字符串”转换。
谁能帮帮我?我在 bash 脚本方面的技能非常有限,在 Python 方面更差。
优雅、解释性解决方案的奖励。
谢谢!
(顺便说一句,这将是我的previous question 的“反向”脚本)
【问题讨论】: