Bonjour,
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents .
sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui
convertissent les caractères accentuées ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane CHAZELAS
2009-06-03, 10:40(+02), Fred Kap:
Bonjour, en C++ , j'ai a créer des fichiers sous une clé usb avec des accents . sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8, donc pas 0xe9 pour é (comme dans iso8859-1/15...) mais comme
/mnt$ sudo touch $'xe9' touch: setting times of `é': No such file or directory /mnt$ echo $'xe9' | recode l1..u8 | od -tx1 0000000 c3 a9 0a 0000003 /mnt$ sudo touch $'xc3xa9' /mnt$ ls | od -tx1 0000000 c3 a9 0a 0000003
Le mieux est de monter ta clef usb avec un iocharset qui correspond a celui que tu utilises pour communiquer avec tes users.
Sinon, pour les conversions, regarde du cote de iconv(3).
-- Stéphane
2009-06-03, 10:40(+02), Fred Kap:
Bonjour,
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents .
sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui
convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de
montage du filesystem.
Bonjour, en C++ , j'ai a créer des fichiers sous une clé usb avec des accents . sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8, donc pas 0xe9 pour é (comme dans iso8859-1/15...) mais comme
/mnt$ sudo touch $'xe9' touch: setting times of `é': No such file or directory /mnt$ echo $'xe9' | recode l1..u8 | od -tx1 0000000 c3 a9 0a 0000003 /mnt$ sudo touch $'xc3xa9' /mnt$ ls | od -tx1 0000000 c3 a9 0a 0000003
Le mieux est de monter ta clef usb avec un iocharset qui correspond a celui que tu utilises pour communiquer avec tes users.
Sinon, pour les conversions, regarde du cote de iconv(3).
-- Stéphane
Olivier Miakinen
Le 03/06/2009 19:41, Stephane CHAZELAS répondait à Fred Kap :
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents . sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8,
... mais si j'en crois le codepage, le répertoire de caractères disponible est celui de CP437. Tu as donc droit à certaines lettres grecques, à deux petits souriards, aux quatre symboles des jeux de cartes, etc., mais pas à « ½ », ni bien sûr à « ¤ ».
Le mieux est de monter ta clef usb avec un iocharset qui correspond a celui que tu utilises pour communiquer avec tes users.
Oui.
Sinon, pour les conversions, regarde du cote de iconv(3).
Oui, aussi.
-- Olivier Miakinen
Le 03/06/2009 19:41, Stephane CHAZELAS répondait à Fred Kap :
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents .
sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui
convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de
montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8,
... mais si j'en crois le codepage, le répertoire de caractères
disponible est celui de CP437. Tu as donc droit à certaines lettres
grecques, à deux petits souriards, aux quatre symboles des jeux de
cartes, etc., mais pas à « ½ », ni bien sûr à « ¤ ».
Le 03/06/2009 19:41, Stephane CHAZELAS répondait à Fred Kap :
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents . sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8,
... mais si j'en crois le codepage, le répertoire de caractères disponible est celui de CP437. Tu as donc droit à certaines lettres grecques, à deux petits souriards, aux quatre symboles des jeux de cartes, etc., mais pas à « ½ », ni bien sûr à « ¤ ».
Le mieux est de monter ta clef usb avec un iocharset qui correspond a celui que tu utilises pour communiquer avec tes users.
Oui.
Sinon, pour les conversions, regarde du cote de iconv(3).
Oui, aussi.
-- Olivier Miakinen
Stephane CHAZELAS
2009-06-03, 23:49(+02), Olivier Miakinen:
Le 03/06/2009 19:41, Stephane CHAZELAS répondait à Fred Kap :
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents . sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8,
... mais si j'en crois le codepage, le répertoire de caractères disponible est celui de CP437. Tu as donc droit à certaines lettres grecques, à deux petits souriards, aux quatre symboles des jeux de cartes, etc., mais pas à « ½ », ni bien sûr à « ¤ ».
[...]
Je pense que le cp437, c'est seulement pour les noms courts (8+3) (pour la compatibilité MS-DOS).
Les noms longs sont codés en UTF16/UCS2 dans le filesystem, le iochaset c'est juste pour l'adaptation a l'API Unix qui fonctionne avec des chaines de caracteres.
-- Stéphane
2009-06-03, 23:49(+02), Olivier Miakinen:
Le 03/06/2009 19:41, Stephane CHAZELAS répondait à Fred Kap :
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents .
sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui
convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de
montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8,
... mais si j'en crois le codepage, le répertoire de caractères
disponible est celui de CP437. Tu as donc droit à certaines lettres
grecques, à deux petits souriards, aux quatre symboles des jeux de
cartes, etc., mais pas à « ½ », ni bien sûr à « ¤ ».
[...]
Je pense que le cp437, c'est seulement pour les noms courts
(8+3) (pour la compatibilité MS-DOS).
Les noms longs sont codés en UTF16/UCS2 dans le filesystem, le
iochaset c'est juste pour l'adaptation a l'API Unix qui
fonctionne avec des chaines de caracteres.
Le 03/06/2009 19:41, Stephane CHAZELAS répondait à Fred Kap :
en C++ , j'ai a créer des fichiers sous une clé usb avec des accents . sous ext3 ca marche mais pas en FAT32 , existe t_il des fonctions qui convertissent les caractères accentuées ?
Faut encoder le nom dans le charset utilisé dans les options de montage du filesystem.
Dans mon cas, il me faut ecrire mes noms de fichiers en utf8,
... mais si j'en crois le codepage, le répertoire de caractères disponible est celui de CP437. Tu as donc droit à certaines lettres grecques, à deux petits souriards, aux quatre symboles des jeux de cartes, etc., mais pas à « ½ », ni bien sûr à « ¤ ».
[...]
Je pense que le cp437, c'est seulement pour les noms courts (8+3) (pour la compatibilité MS-DOS).
Les noms longs sont codés en UTF16/UCS2 dans le filesystem, le iochaset c'est juste pour l'adaptation a l'API Unix qui fonctionne avec des chaines de caracteres.
-- Stéphane
Olivier Miakinen
Le 04/06/2009 08:04, Stephane CHAZELAS m'a répondu :
Je pense que le cp437, c'est seulement pour les noms courts (8+3) (pour la compatibilité MS-DOS).
Les noms longs sont codés en UTF16/UCS2 dans le filesystem, le iocharset c'est juste pour l'adaptation a l'API Unix qui fonctionne avec des chaines de caracteres.
Merci, c'est très clair.
-- Olivier Miakinen
Le 04/06/2009 08:04, Stephane CHAZELAS m'a répondu :
Je pense que le cp437, c'est seulement pour les noms courts
(8+3) (pour la compatibilité MS-DOS).
Les noms longs sont codés en UTF16/UCS2 dans le filesystem, le
iocharset c'est juste pour l'adaptation a l'API Unix qui
fonctionne avec des chaines de caracteres.
Le 04/06/2009 08:04, Stephane CHAZELAS m'a répondu :
Je pense que le cp437, c'est seulement pour les noms courts (8+3) (pour la compatibilité MS-DOS).
Les noms longs sont codés en UTF16/UCS2 dans le filesystem, le iocharset c'est juste pour l'adaptation a l'API Unix qui fonctionne avec des chaines de caracteres.