[FR]Unicode -> Autre chose ?

If you need help on how to use the program
Post Reply
MagicalTux

[FR]Unicode -> Autre chose ?

Post 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
antp
Site Admin
Posts: 9714
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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.
MagicalTux

Post 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]
antp
Site Admin
Posts: 9714
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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.
MagicalTux

Post by MagicalTux »

Vachement utile pour le transfert vers des OS qui n'ont pas de noms "unicode" :p

Je n'ai pas trouvé un seul outil qui fasse la convertion
antp
Site Admin
Posts: 9714
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post 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.
Post Reply