setlocale/strftime问题

10

我正在使用以下代码来输出希腊语的月份全名。

setlocale(LC_TIME, 'el_GR');
strftime("%B"); 

这个方法有效,但输出的字符串是 ISO-8859-7 编码(希腊代码页),这是一个问题,因为我需要一个 UTF-8 字符串。虽然我可以通过 iconv 进行转换,但我想知道是否有一种方法可以在不使用额外函数的情况下做到这一点。

你能不能让 strftime 在这种情况下输出一个 UTF-8 字符串?

2个回答

13

试试这个:

setlocale(LC_TIME, 'el_GR.UTF-8');

1

这只是对ZZ Coder的回答的一个旁注:

如果在linux上setlocale(LC_TIME, 'el_GR.UTF-8');无法工作,请通过从shell中运行locale -a来检查启用的语言环境。

如果您没有看到el_GR.UTF-8,请打开/etc/locale.gen并取消相应行的注释。

然后运行locale-gen,您就可以了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接