Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 May 2011 06:44:46 +0200
From:      Frank Bonnet <f.bonnet@esiee.fr>
To:        Modulok <modulok@gmail.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Filename containing French characters ?
Message-ID:  <4DDB37BE.7080301@esiee.fr>
In-Reply-To: <BANLkTikEMQBm0743qaRsw-d%2B0RtWFxwEjw@mail.gmail.com>
References:  <990E8670-2137-4F80-8D9D-BCEB05C6ECAA@esiee.fr> <BANLkTikEMQBm0743qaRsw-d%2B0RtWFxwEjw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks that is working :-)

Now I have to test the application ( apache based application )
to see if it is able to open the file.

I'll tell in few hours when arrived to my office


Le 23/05/2011 17:50, Modulok a =E9crit :
> Short answer, use a glob pattern. Assume I have a file named '=E0 fichi=
er.txt':
>
>      ls -l
>      -rw-r--r--  1 Modulok  Modulok       12 May 23 09:01 ?? fichier.tx=
t
>
>      mv ?\ fichier.txt aFile.txt
>
> Long answer, for those who want to follow along and fix their terminal =
to
> display UTF-8, keep reading...
>
> Step 1: Make a funky file to play along with this min-tutorial:
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Create a text file with an editor that supports non-ASCII characters. I
> created a file named 'filename' which containing this (no newline!):
>
>          =E0 fichier.txt
>
> Step 2: Create the actual file with content
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> I used echo and cat like so in the tcsh shell:
>
>          echo "hello world">  "`cat filename`"
>
>
> Step 3: Show the file in ls
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
>
> As you can see below, the first character of the filename is displayed =
as two
> question marks. This is the terminal's way of showing filenames that it=
 cannot
> display correctly. There are two question marks, because this is a two-=
byte
> character. This does *not* mean the filename starts with a literal ques=
tion
> mark:
>
>
>      -rw-r--r--  1 Modulok  Modulok       12 May 23 09:01 ?? fichier.tx=
t
>
> Step 4: (optional) Fix the terminal
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> At this point, let's just fix the terminal so that UTF-8 characters are
> displayed correctly. We want to see the French accented '=E0', and not =
a bunch of
> question marks. To do this, you edit '/etc/login.conf' as root. Add two=
 lines
> at the bottom of the 'default' section. My default section now looks li=
ke this:
>
>
>      default:\
>              :passwd_format=3Dmd5:\
>              :copyright=3D/etc/COPYRIGHT:\
>
>              ...and so on...
>
>              :charset=3Den_US.UTF-8:\
>              :lang=3Den_US.UTF-8:
>
> If you're a French operation yours should probably look like this inste=
ad:
>
>      default:\
>              :passwd_format=3Dmd5:\
>              :copyright=3D/etc/COPYRIGHT:\
>
>              ...and so on...
>
>              :charset=3Dfr_FR.UTF-8:\
>              :lang=3Dfr_FR.UTF-8:
>
> I'm not certain on these for all countries, but the above examples work=
. We
> then need to rebuild the actual login database. Execute the following c=
ommand
> as root:
>
>      cap_mkdb /etc/login.conf
>
> This generates /etc/login.conf.db from /etc/login.conf. Now log out and=
 then
> back in!
>
>
> Step 5: Back to the funky file
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
>
> You should now see the actual accent characters correctly in the termin=
al.
> (Assuming your terminal supports this):
>
>      -rw-r--r--  1 Modulok  Modulok       12 May 23 09:01 =E0 fichier.t=
xt
>
> In some ternimals, we cannot type these characters. So you can access t=
he
> filename through a shell glob pattern. In most shells, the glob pattern=
 '?'
> matches any single character. The forward slash escapes the space in th=
e
> filename.
>
>      mv ?\ fichier.txt aFile.txt
>
>
> Hope this helps (and doesn't get too mangled.)
> -Modulok-



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4DDB37BE.7080301>