On Tue, 29 Mar 2005, Kobayashi Noritada wrote:
> I get funny error messages when using svnserve tunnel mode with LANG=C
> (or LC_ALL=C).
> With LANG=C, error message characters should be ASCII.
> In fact, however, they seem to be always localized UTF-8 characters,
> and when displayed under LANG=C they turn to unreadable '?\nnn'-s, that
> shows they are recoded twice from UTF-8 to local encoding.
When the ctype locale category is set to "C", libc will think your
environment only supports pure ASCII. So, the above is not caused by
double decoding, but iconv is trying to recode your (Japanese?) characters
from UTF8 to (7-bit) ASCII. When I want untranslated messages, I usually
set LC_MESSAGES=C. You'd have the same conversion problem with non-ASCII
filenames, at least on Unix.
> This strange behaviour occurs in both /branches/1.1.x and current /trunk.
>
> A test shell script and its outputs are in the lower part of this mail.
> In that output, the error message "File not found: revision %ld, path '%s'"
> (in subversion/libsvn_fs_*/tree.c) is:
>
> * properly localized with LANG=ja_JP.eucJP + ra_local.
> * output in ASCII with LANG=C + ra_local.
> * properly localized with LANG=ja_JP.eucJP + ra_svn (tunnel mode).
> * output in unreadable chars ('?\nnn'-s) with LANG=C + ra_svn (tunnel mode).
>
>
The problem here is that svnserve sets the locale according to the
environment on the server (it has to, to handle characters correctly).
Does your login script on the server set the locale? I'm not sure how SSH
transfers locale envvars over the wire.
See also recent commits by eh regarding locale stuff in svnserve.
Regards,
//Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Mar 29 14:08:59 2005