代码之家  ›  专栏  ›  技术社区  ›  Manos Dilaverakis

setlocale/strftime问题

  •  10
  • Manos Dilaverakis  · 技术社区  · 14 年前

    我用下面的代码输出一个月的全名。

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

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

    你能告诉strftime在这种情况下输出一个utf-8字符串吗?

    2 回复  |  直到 9 年前
        1
  •  13
  •   ZZ Coder    14 年前

    试试这个,

    setlocale(LC_TIME, 'el_GR.UTF-8');
    
        2
  •  1
  •   Community CDub    7 年前

    只是个小贴士 ZZ Coder 的答案:

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

    不适用于Linux ,通过运行 locale -a 从贝壳里。

    如果你看不见 el_GR.UTF-8 在那里,打开 /etc/locale.gen 并取消对相应行的注释。

    那就跑吧 locale-gen 你应该没事的。