我使用以下内容以希腊语输出一个月的全名。
setlocale(LC_TIME, 'el_GR');
strftime("%B");
这是有效的,除了输出字符串是ISO-8859-7(希腊代码页),这是一个问题,因为我需要一个UTF-8字符串。我可以把它通过iconv转换它,但我想知道是否有办法做到这一点,而无需借助额外的功能。
在这种情况下,你能以某种方式告诉strftime输出一个UTF-8字符串吗?
答案 0 :(得分:13)
试试这个,
setlocale(LC_TIME, 'el_GR.UTF-8');
答案 1 :(得分:1)
只是ZZ Coder答案的旁注:
如果setlocale(LC_TIME, 'el_GR.UTF-8');
无法在Linux中运行,请通过从shell运行locale -a
来检查已启用的区域设置。
如果您在那里看不到el_GR.UTF-8
,请打开/etc/locale.gen
并取消注释相应的行。
然后运行locale-gen
,你应该没事。