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

[debian-devel:10356] Re: wchar_t (Re: I18N Document)



ã¾ã  ã ã‚Œã‚‚ç­”ãˆã¦ãªã„よã†ãªã®ã§â€¦

At Mon, 6 Sep 1999 17:12:21 +0900,
Tomohiro KUBOTA <kubota@xxxxxxxxxxxxxxxxxxxxx> wrote:

> C 言語ã®ãƒ¯ã‚¤ãƒ‰æ–‡å­—列ã®ãƒ†ã‚¹ãƒˆã®ã¤ã‚‚ã‚Šã§ã€ã“ã®ã‚ˆã†ãªãƒ—ログラムを作りã¾ã—ãŸã€‚

return value ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ç™–ã‚’ã¤ã‘ã¦ã„ã‚Œã°ã™ãã‚ã‹ã£ãŸã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ã­:)
 
> -------- wchar.c ---------
> #include <stdio.h>
> #include <locale.h>
> #include <string.h>
> #include <stdlib.h>
> 
> main()
> {
> 	char buf[1000];
> 	wchar_t wbuf[1000];
> 	int j, len;
> 
> 	setlocale(LC_ALL, "");

	if (setlocale(LC_ALL, "") == NULL) {
		perror("setlocale");
	}

ã¨ã§ã‚‚ã—ã¦ãŠãã¨

> ã“ã“ã§ã€EUC-JP 㧠'ã‚' 㯠0xa4, 0xa2 ã§ã™ã®ã§ã€ISO 8859-* ã¨ã‹ã§ã‚‚
> 正常ãªæ–‡å­—ã¨ã—ã¦èªè­˜ã•ã‚Œã‚‹ã¯ãšã§ã™ã€‚ãれをãŸã‚ã—ã¦ã¿ã‚ˆã†ã¨ã—ã¦ã€
> 
> $ LANG=fr ./wchar
> 
> ã¨ã‹ã€LANG ã‚’ã„ã‚ã„ã‚ã¨å¤‰ãˆã¦ã¿ã¾ã—ãŸãŒã€ã©ã†ã—ã¦ã‚‚
> ãã®éƒ¨åˆ†ã§ len=-1 (wctomb ã®ç•°å¸¸çµ‚了) ã¨å‡ºã¾ã™ã€‚ç§ã®äºˆæƒ³ã§ã¯ã€
> ç”»é¢ã¯ã“ã‚ã‚Œã¦ã‚‚ã„ã„ã‹ã‚‰ã€len=1 ㌠9 回出ã¦æ¥ã¦ã»ã—ã„ã‚“ã§ã™ãŒã€‚

LANG=fr ã§ã¯ setlocale(3) ã«æˆåŠŸã—ã¾ã›ã‚“。

 % LANG=fr ./wchar
 setlocale failed: Aucun fichier ou repertoire de ce type

LANG=fr_FR ãªã©ã§ã¯æˆåŠŸã—ã€ä¹…ä¿ç”°ã•ã‚“ã®äºˆæƒ³é€šã‚Šã®çµæžœã«ãªã‚Šã¾ã™ã€‚

> 考ãˆã‚‰ã‚Œã‚‹ç†ç”±ã¨ã—ã¦ã¯ã€
> 
> 1. LANG ã«ä¸Žãˆã‚‹æ–‡å­—列ãŒé–“é•ã£ã¦ã„る。
> 2. ISO 8859-* ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„。
> 3. インストールã™ã‚‹ãƒ‘ッケージãŒé–“é•ã£ã¦ã„る。
> 
> ãらã„ãŒæ€ã„付ãã¾ã™ãŒã€LANG 㯠fr ã¨ã‹ it ã¨ã‹ es ã¨ã‹
> æ€ã„付ãã¾ã¾ã«ã‚„ã£ã¦ã¿ã¾ã—ãŸãŒã ã‚ã§ã—ãŸã€‚

1 ã§ã™ã€‚locale -a ã§ã§ã¦ãã‚‹ã®ã§ã„ã‚ã„ã‚試ã—ã¦ã¿ã‚‹ã¨ã‚ˆã„ã§ã—ょã†ã€‚
# locale -a ã§ã§ã¦ãã‚‹ã‹ã‚‰ã¨ã„ã£ã¦ setlocale(3)ã¯æˆåŠŸã—ãªã„ã“ã¨ã«æ³¨æ„。

> ã¡ãªã¿ã«ã€LANG=ja_JP.sjis ã¨ã—ã¦ã‚‚ã€LANG=ja_JP.ujis ã¨ã—ã¦ã‚‚ã€
> EUC-JP ã®å…¥åŠ›ã—ã‹å—ã‘付ã‘ãªã„よã†ã§ã™ã­ã€‚glibc 2.1 ãŒã€Œã„ã„ã‹ã’ã‚“ã€
> ã ã¨ã„ã†ã®ã¯ã“ã®ã“ã¨ã§ã—ょã†ã‹ï¼Ÿ

ja_JP.sjis, ja_JP.ujis 㪠locale database ãŒãªã„ã‹ã‚‰ã§ã™ã€‚
(㧠fallback ã—㦠ja_JP ã«ãªã‚Š EUC-JP ã¨ãªã£ã¦ã„ã‚‹ã¨æ€ã‚れる)

試ã—ã« /usr/share/locale 㧠ja_JP.sjis directory を作り
LC_* ã‚’ ja_JP/ ã‹ã‚‰ symlink ã—㦠LANG=ja_JP.sjis ã§å®Ÿè¡Œã™ã‚‹ã¨
予想通りã®å‹•ä½œã‚’ã—ã¾ã™ã€‚

locale-ja ㌠ja_JP.sjis ã‚’ ja_JP.ujis ã®ã‚ˆã†ã«ã¤ãã£ã¦ãŠã
ã¹ããªã®ã‹ã‚‚ã—ã‚Œãªã„。

ãªãŠã€ç¾åœ¨ locale-ja ã§æä¾›ã—ã¦ã„ã‚‹ locale database ã¯å˜˜ãƒ‡ãƒ¼ã‚¿ã§ã™ã€‚
ã“れ㯠localedef ãªã©ãŒã¾ã  multibyteを扱ãˆãªã‹ã£ãŸãŸã‚ã§ã™ã€‚
# ã¾ã  駄目ã‹ãªâ€¦

-- 
鵜飼文æ•