[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:16493] Re: aptitude --show-deps の文字化け
こんにちは、
> > というコードが「D: ruby1.8」のような部分を作っているようで、引用 1 行
> > 目でマルチバイト (たぶん UTF-8) 文字列の一文字目をきちんと取得できてい
> > ないのが原因かと思います。
>
> まず、 DepType() は libapt の中で、依存関係を返してくれる関数で、国際化した文字列を返してきます。
>
> この時点では、 locale が設定されているので、 locale 関連の関数が全部利用できるはずです。
先ほど銀座の路上で話していた話題ですが、もっとましなコード思い付きまし
た。mbrlen が最初のmultibyte の文字列の長さを返してくれる関数です。
[23:42:33]dancer64:tmp> cat a.c
/*BINFMTC:
*/
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <wchar.h>
int main()
{
int len;
const char* m="これ";
mbstate_t mbstate;
char *b=strdup(m);
setlocale(LC_ALL, "");
len=mbrlen(m, strlen(m), &mbstate);
b[len]=0;
printf ("%s", b);
}
上川
--
dancer@{debian.org,netfort.gr.jp} Debian Project