[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#495494: nl_langinfo() returns ANSI_X3.4-1968 instead of UTF-8



Package: libc6-i686
Version: 2.7-13
Severity: normal

Hello,

It seems my machine can't make up its mind as to what charset is being used.
Most things seem convinced that it is UTF-8:

$ grep -v ^# /etc/locale.gen | grep -v ^$
en_US.UTF-8 UTF-8
$ grep -v ^# /etc/default/locale | grep -v ^$
LANG=en_US.UTF-8
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
$ locale charmap
UTF-8
$ localedef --list-archive
en_US.utf8


However, nl_langinfo(CODESET) returns ANSI_X3.4-1968:


$ cat test.c
#include <stdio.h>
#include <langinfo.h>

int main(int argc, char *argv[])
{
  printf("%s\n", nl_langinfo(CODESET));
  return 0;
}
$ gcc test.c -o test
$ ./test
ANSI_X3.4-1968


Why would nl_langinfo() be different than everything else and how can I
fix this?  Note that the manpage specifies that it should return the same
string as `locale charmap` -- that is obviously not the case here.

Thanks,
--Joe

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libc6-i686 depends on:
ii  libc6                         2.7-13     GNU C Library: Shared libraries



Reply to: