unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: guile-user@gnu.org
Subject: Re: guile can't find a chinese named file
Date: Mon, 30 Jan 2017 17:41:17 +0100	[thread overview]
Message-ID: <87y3xsa4b6.fsf@gnu.org> (raw)
In-Reply-To: 87tw8gr1ky.fsf@fencepost.gnu.org

Hey Dave!

David Kastrup <dak@gnu.org> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:

[...]

>>> ERROR: In procedure open-file: No such file or directory:
>>> "/home/hermann/Desktop/filename_\u540d\u5b57.scm"
>>
>> In C, argv is just an array of byte sequences, but in Guile,
>> (command-line) returns a list of strings, not a list of bytevectors.
>>
>> Guile decodes its arguments according to the encoding of the current
>> locale.  So if you’re in a UTF-8 locale (say, zn_CH.utf8 or en_US.utf8),
>> Guile assumes its command-line arguments are UTF-8-encoded and decodes
>> them accordingly.
>>
>> In the example above, it seems that the file name encoding was different
>> from the locale encoding, leading to this error.
>>
>> HTH!
>
> Did you actually test this?

Oops, let me clarify.

Command-line arguments are indeed decoded encoding to the locale
encoding (that’s commit ed4c3739668b4b111b38555b8bc101cb74c87c1c.)

When making a syscall like open(2), Guile converts strings to the locale
encoding.

However, in 2.0, the current locale is *not* installed; you have to
either call ‘setlocale’ explicitly (like in C), or set this environment
variable (info "(guile) Environment Variables"):

  GUILE_INSTALL_LOCALE=1

When you do that (and this will be the default in 2.2), things work as
expected:

--8<---------------cut here---------------start------------->8---
$ GUILE_INSTALL_LOCALE=1 guile λ.scm
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /home/ludo/src/guile/λ.scm
;;; compiled /home/ludo/.cache/guile/ccache/2.0-LE-8-2.0/home/ludo/src/guile/λ.scm.go
hello λ!
$ locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER=fr_FR.utf8
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
--8<---------------cut here---------------end--------------->8---

Sorry for the confusion!

Ludo’.




  reply	other threads:[~2017-01-30 16:41 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-27 11:58 guile can't find a chinese named file Thomas Morley
2016-11-27 12:16 ` Chaos Eternal
2016-11-28  8:54   ` Thomas Morley
2017-01-26 21:59     ` Linas Vepstas
2017-01-30 14:20 ` Ludovic Courtès
2017-01-30 15:48   ` David Kastrup
2017-01-30 16:41     ` Ludovic Courtès [this message]
2017-01-30 17:04       ` David Kastrup
2017-01-30 15:54   ` Marko Rauhamaa
2017-01-30 16:19     ` David Kastrup
2017-01-30 16:33       ` Marko Rauhamaa
2017-01-30 16:42         ` David Kastrup
2017-01-30 17:58           ` Marko Rauhamaa
2017-01-30 18:32             ` David Kastrup
2017-01-30 18:50               ` Eli Zaretskii
2017-01-30 19:00                 ` David Kastrup
2017-01-30 19:32                   ` Eli Zaretskii
2017-01-30 19:59                     ` Eli Zaretskii
2017-01-30 20:42                       ` Mike Gran
2017-01-31  3:31                         ` Eli Zaretskii
2017-01-31  6:16                           ` Mike Gran
2017-01-31  8:51                           ` David Kastrup
2017-01-30 19:01               ` Marko Rauhamaa
2017-01-30 19:27                 ` David Kastrup
2017-02-14 20:10                   ` Linas Vepstas
2017-02-14 20:54                     ` Mike Gran
2017-02-14 21:07                       ` Marko Rauhamaa
2017-02-14 21:52                         ` Mike Gran
2017-02-14 22:12                           ` Marko Rauhamaa
2017-02-14 22:19                           ` Chris Vine
2017-02-15  7:15                             ` Marko Rauhamaa
2017-02-15  9:18                             ` tomas
2017-02-15  9:54                               ` David Kastrup
2017-02-15 10:10                                 ` tomas
2017-02-15 17:04                                   ` Eli Zaretskii
2017-02-15 20:07                                     ` tomas
2017-02-15 20:22                                       ` Eli Zaretskii
2017-02-15 10:50                                 ` Marko Rauhamaa
2017-02-15 11:18                                   ` David Kastrup
2017-02-15 10:15                               ` Chris Vine
2017-02-15 11:48                                 ` tomas
2017-02-15 12:13                                   ` Chris Vine
2017-02-15 12:41                                     ` tomas
2017-02-15 13:11                                       ` Chris Vine
2017-02-15 13:31                                         ` tomas
2017-02-15 17:07                                     ` Eli Zaretskii
2017-02-26 20:58                                       ` Andy Wingo
2017-02-27 16:02                                         ` Eli Zaretskii
2017-02-26 20:52                                 ` Andy Wingo
2017-02-15 16:59                               ` Eli Zaretskii
2017-02-15 17:53                                 ` Marko Rauhamaa
2017-02-15 20:20                                 ` tomas
2017-02-15 20:32                                   ` Eli Zaretskii
2017-02-15 21:04                                     ` Marko Rauhamaa
2017-02-16  5:44                                       ` Eli Zaretskii
2017-02-16  6:15                                         ` Marko Rauhamaa
2017-02-16  6:29                                           ` Eli Zaretskii
2017-02-16  6:41                                             ` Eli Zaretskii
2017-02-16  7:16                                               ` Marko Rauhamaa
2017-02-16  8:26                                                 ` David Kastrup
2017-02-16 10:21                                                   ` Marko Rauhamaa
2017-02-16 10:43                                                     ` David Kastrup
2017-02-16 11:04                                                       ` Marko Rauhamaa
2017-02-16 11:11                                                         ` David Kastrup
2017-02-16 11:32                                                           ` Marko Rauhamaa
2017-02-16 11:49                                                             ` David Kastrup
2017-02-16 12:14                                                               ` Marko Rauhamaa
2017-02-16 16:21                                                                 ` Eli Zaretskii
2017-02-16 16:38                                                                   ` Marko Rauhamaa
2017-02-16 17:46                                                                     ` Eli Zaretskii
2017-02-16 18:38                                                                       ` Marko Rauhamaa
2017-02-16 18:46                                                                         ` Eli Zaretskii
2017-02-16 19:35                                                                           ` Marko Rauhamaa
2017-02-16 20:10                                                                             ` Eli Zaretskii
2017-02-16 20:52                                                                               ` David Kastrup
2017-02-16 21:13                                                                                 ` Marko Rauhamaa
2017-02-17  6:44                                                                                   ` Eli Zaretskii
2017-02-17  8:46                                                                                     ` Marko Rauhamaa
2017-02-17  9:04                                                                                       ` David Kastrup
2017-02-17  9:57                                                                                         ` tomas
2017-02-17  9:07                                                                                       ` Eli Zaretskii
2017-02-17  6:32                                                                                 ` Eli Zaretskii
2017-02-16 16:06                                                 ` Eli Zaretskii
2017-02-16 16:35                                                   ` Marko Rauhamaa
2017-02-16 17:41                                                     ` Eli Zaretskii
2017-02-16 18:30                                                     ` Mike Gran
2017-02-16 18:48                                                       ` David Kastrup
2017-02-16  7:02                                             ` Marko Rauhamaa
2017-02-16 15:47                                               ` Eli Zaretskii
2017-02-15 21:15                                     ` tomas
2017-02-16  5:54                                       ` Eli Zaretskii
2017-02-14 23:58                       ` David Kastrup
2017-02-15 10:12                         ` tomas
2017-02-15 12:04                           ` Marko Rauhamaa
2017-02-26 21:20                         ` Andy Wingo
2017-02-27  9:10                           ` David Kastrup
2017-02-27 11:02                             ` Andy Wingo
2017-02-27 12:09                               ` David Kastrup
2017-02-27 12:33                                 ` Andy Wingo
2017-02-27 16:07                           ` Eli Zaretskii
2017-02-27 19:29                             ` Andy Wingo
2017-02-27 20:24                               ` Jan Wedekind
2017-02-27 20:33                                 ` Eli Zaretskii
2017-02-14 22:26                     ` Ludovic Courtès
2017-02-26 21:23                       ` Andy Wingo
2017-01-30 19:41                 ` Eli Zaretskii
2017-01-30 20:46                   ` Marko Rauhamaa
2017-01-31 12:20                     ` tomas
2017-02-14 19:58             ` Linas Vepstas
2017-02-26 21:33               ` Andy Wingo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y3xsa4b6.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).