Page 1 of 1
[FR]Unicode -> Autre chose ?
Posted: 2004-08-08 18:40:07
by MagicalTux
Hello,
Ce serait pratique de pouvoir transformer les caractères unicode (du japonais en l'occurence) en leur équivalent dans un autre charset (SJIS en l'occurence) ...
je n'ai rien vu sur les convertions de Charset donc j'imagine que rien n'est prévu a ce niveau ^^;
Sinon si on pouvais enoyer l'ancien nom vers un programme pour qu'il retourne le nouveua nom ça m'arrange aussi
MT
Posted: 2004-08-08 19:31:26
by antp
Via l'action "Multiple string replacement" ça devrait être faisable, il suffit que quelqu'un fasse la liste des équivalences.
J'avais fait cette fonction pour ça, mais la seule liste que j'ai pu faire c'est celle qui sert à supprimé les accents ouest-européens.
Posted: 2004-08-08 20:32:16
by MagicalTux
Tu devrais regarder vers iconv
Sinon j'ai écrit un code en Python qui converti l'unicode (tout charset) en UTF-8 ...
Code: Select all
import os
# Trying to make it recursive...
base=u'c:/japanese/'
def do_rename(mypath):
filelist=os.listdir(mypath)
for i in range(0,len(filelist)):
# first : convert name using PHP and iconv()
curfile=filelist[i]
if ( (curfile==".") or (curfile=="..")):
continue
curfile=curfile.encode('utf-8')
print curfile
curfile=unicode(curfile,'iso8859-15')
# rename file to new name :)
if (filelist[i] != curfile):
os.rename(mypath+filelist[i],mypath+curfile)
# is a dir ?
if (os.path.isdir(mypath+curfile)):
do_rename(mypath+curfile+"/")
return 1
def do_rename2(mypath):
filelist=os.listdir(mypath)
for i in range(0,len(filelist)):
# first : convert name using PHP and iconv()
curfile=filelist[i]
if ( (curfile==".") or (curfile=="..")):
continue
curfile=curfile.encode('iso8859-15')
print curfile
curfile=unicode(curfile,'utf-8')
# rename file to new name :)
if (filelist[i] != curfile):
os.rename(mypath+filelist[i],mypath+curfile)
# is a dir ?
if (os.path.isdir(mypath+curfile)):
do_rename2(mypath+curfile+"/")
return 1
do_rename(base)
suffit de remplacer do_rename par do_rename2 (a la fin) pour décoder (utf-8 -> unicode).
[/code]
Posted: 2004-08-08 21:24:04
by antp
Il doit y avoir le même genre de trucs dans les fonctions Windows et/ou Delphi, c'est vrai que je pourrais rajouter une action pour encoder/décoder l'unicode en un charset local.
Posted: 2004-08-08 21:41:56
by MagicalTux
Vachement utile pour le transfert vers des OS qui n'ont pas de noms "unicode"
Je n'ai pas trouvé un seul outil qui fasse la convertion
Posted: 2004-08-08 22:03:06
by antp
D'un autre côté, je ne suis pas sür que ça marche très fort sur les OS non-NT, vu que les fonctions unicode du programme ne sont utilisées que sous NT.