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

next in thread | previous in thread | raw e-mail | index | archive | help
OK now the filenames are well displayed in the console
\BUT ...

It still does not work with apache ( 404 file not found ! )

here is the log of apache when trying to access a filename
that contains those bloody characters



82.238.8.126 - - [24/May/2011:06:56:01 +0200] "GET=20
/cv/ESIEE_MANAGEMENT/Systeme_information/11_EM2_SI_JUIN_CV_AMICHIA_Anthon=
y%20Aim%C3%A9e%20Marthe%20Moteh.docx=20
HTTP/1.1" 404 1337

The problem comes from the %C3%A9e character ( e eacute )

apache is unable to open that filename


On 05/24/2011 06:44 AM, Frank Bonnet wrote:
> 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=20
>> fichier.txt':
>>
>>      ls -l
>>      -rw-r--r--  1 Modulok  Modulok       12 May 23 09:01 ?? fichier.t=
xt
>>
>>      mv ?\ fichier.txt aFile.txt
>>
>> Long answer, for those who want to follow along and fix their=20
>> 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=20
>> displayed as two
>> question marks. This is the terminal's way of showing filenames that=20
>> it cannot
>> display correctly. There are two question marks, because this is a=20
>> two-byte
>> character. This does *not* mean the filename starts with a literal=20
>> question
>> mark:
>>
>>
>>      -rw-r--r--  1 Modulok  Modulok       12 May 23 09:01 ?? fichier.t=
xt
>>
>> 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 ar=
e
>> displayed correctly. We want to see the French accented '=E0', and not=
=20
>> a bunch of
>> question marks. To do this, you edit '/etc/login.conf' as root. Add=20
>> two lines
>> at the bottom of the 'default' section. My default section now looks=20
>> like 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=20
>> instead:
>>
>>      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=20
>> work. We
>> then need to rebuild the actual login database. Execute the following=20
>> command
>> as root:
>>
>>      cap_mkdb /etc/login.conf
>>
>> This generates /etc/login.conf.db from /etc/login.conf. Now log out=20
>> 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=20
>> terminal.
>> (Assuming your terminal supports this):
>>
>>      -rw-r--r--  1 Modulok  Modulok       12 May 23 09:01 =E0 fichier.=
txt
>>
>> In some ternimals, we cannot type these characters. So you can access=20
>> the
>> filename through a shell glob pattern. In most shells, the glob=20
>> pattern '?'
>> matches any single character. The forward slash escapes the space in t=
he
>> filename.
>>
>>      mv ?\ fichier.txt aFile.txt
>>
>>
>> Hope this helps (and doesn't get too mangled.)
>> -Modulok-
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to=20
> "freebsd-questions-unsubscribe@freebsd.org"


--=20

Frank BONNET

01.45.92.66.17

Service des Moyens Informatiques Generaux

ESIEE PARIS
Cit=E9 Descartes / BP 99
93162 NOISY-LE-GRAND Cedex
http://www.esiee.fr <http://www.esiee.fr/>;




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