11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour

Avant que je me mette à réinventer le feu, la roue et le fil à couper le beurre, auriez vous dans un coin un script JS qui convertit des "entités", c'est à dire des caractères latins avec signes diacritiques exprimés sous la forme é ü ou &eolig;, en utf8?
Les recherches que j'ai faites sur le Web vont plutôt dans l'autre sens.

Merci de votre aide
Modifié par PapyJP (12 Apr 2016 - 10:29)
Bonjour,

J'ai trouvé ce lien qui à l'air vachement intéressant.

Le site apporte un ensemble de fonction PHP retranscris en JS, je trouve ça plutôt cool Smiley ravi

Sinon, en plus lourd, j'ai trouvé ça
Modifié par SolidSnake (12 Apr 2016 - 10:46)
Bonjour,

Il existe aussi la méthode .html() de jQuery.
Mais je ne suis pas sur si cela conviendra, cela dépend du contexte de cette conversion. Smiley lol
Administrateur
Bonjour,

pour é je dirais le navigateur Smiley lol mais c'est parce que je n'ai pas réussi à trouver de moi-même le contexte de cette question : au plus probable une page en ISO-8859-1 où il y a des entités qui ne s'affichent pas correctement ? Et pourquoi JS plutôt que côté serveur (base de données) une fois pour toutes ?
Felipe a écrit :
[...]je n'ai pas réussi à trouver de moi-même le contexte de cette question : au plus probable une page en ISO-8859-1 où il y a des entités qui ne s'affichent pas correctement ? Et pourquoi JS plutôt que côté serveur (base de données) une fois pour toutes ?

Je me suis aussi poser la question... Mais le codeur a ses raisons que la raison ignore... Smiley ravi
SolidSnake a écrit :

Je me suis aussi posé la question... Mais le codeur a ses raisons que la raison ignore... Smiley ravi

La raison du codeur, c'est qu'il travaille sur des fichiers HTML anciens qui sont comme ils sont, dans un contexte où il ne peut rien faire côté serveur.
Les fichiers sont bien n utf8, suite à des conversions à la machine depuis ISO-8859-1, mais la machine n'a pas traduit les entités, j'ai des &bidules; un peu partout.
S'il n'y en avait pas près de 1000, je les referais complètement, mais à raison de 1h par par page, ça doit faire environ 6 mois de boulot, et de plus de boulot sans grand intérêt, consistant à faire du copier/coller/tester... Smiley rolleyes Smiley sweatdrop
Je vais regarder vos liens et je vous dis quoi Smiley smile
Modifié par PapyJP (12 Apr 2016 - 14:34)
Pourquoi pas ne pas utiliser un outil pour faire un rechercher/remplacer. Notepad++ permet de lancer cette commande dans un répertoire.

Il faudrait juste répéter l’opération pour chaque caractère.
Oken a écrit :
Pourquoi pas ne pas utiliser un outil pour faire un rechercher/remplacer. Notepad++ permet de lancer cette commande dans un répertoire.

Il faudrait juste répéter l’opération pour chaque caractère.

Il y a même en Notepad++ une commande qui permet de faire l'opération sur la zone de texte sélectionnée.
Je me dis simplement que je peux ajouter quelques lignes de script à celui que je suis en train d'écrire pour relooker l'aspect des pages.
Puisque personne ne semble avoir un script tout fait, je vais sans doute le faire. C'est plus ennuyeux que difficile à faire...
Si ça vous intéresse:

function toUTF8(text) {
	var res = text.replace(/ /g, ' ');
	res = res.replace(/¡/g, '¡');
	res = res.replace(/¢/g, '¢');
	res = res.replace(/£/g, '£');
	res = res.replace(/¤/g, '¤');
	res = res.replace(/¥/g, '¥');
	res = res.replace(/¦/g, '¦');
	res = res.replace(/§/g, '§');
	res = res.replace(/¨/g, '¨');
	res = res.replace(/©/g, '©');
	res = res.replace(/ª/g, 'ª');
	res = res.replace(/«/g, '«');
	res = res.replace(/¬/g, '¬');
	res = res.replace(/­/g, '­');
	res = res.replace(/®/g, '®');
	res = res.replace(/¯/g, '¯');
	res = res.replace(/°/g, '°');
	res = res.replace(/±/g, '±');
	res = res.replace(/²/g, '²');
	res = res.replace(/³/g, '³');
	res = res.replace(/´/g, '´');
	res = res.replace(/µ/g, 'µ');
	res = res.replace(/¶/g, '¶');
	res = res.replace(/·/g, '·');
	res = res.replace(/¸/g, '¸');
	res = res.replace(/¹/g, '¹');
	res = res.replace(/º/g, 'º');
	res = res.replace(/»/g, '»');
	res = res.replace(/¼/g, '¼');
	res = res.replace(/½/g, '½');
	res = res.replace(/¾/g, '¾');
	res = res.replace(/¿/g, '¿');
	res = res.replace(/À/g, 'À');
	res = res.replace(/Á/g, 'Á');
	res = res.replace(/Â/g, 'Â');
	res = res.replace(/Ã/g, 'Ã');
	res = res.replace(/Ä/g, 'Ä');
	res = res.replace(/Å/g, 'Å');
	res = res.replace(/Æ/g, 'Æ');
	res = res.replace(/Ç/g, 'Ç');
	res = res.replace(/È/g, 'È');
	res = res.replace(/É/g, 'É');
	res = res.replace(/Ê/g, 'Ê');
	res = res.replace(/Ë/g, 'Ë');
	res = res.replace(/Ì/g, 'Ì');
	res = res.replace(/Í/g, 'Í');
	res = res.replace(/Î/g, 'Î');
	res = res.replace(/Ï/g, 'Ï');
	res = res.replace(/Ð/g, 'Ð');
	res = res.replace(/Ñ/g, 'Ñ');
	res = res.replace(/Ò/g, 'Ò');
	res = res.replace(/Ó/g, 'Ó');
	res = res.replace(/Ô/g, 'Ô');
	res = res.replace(/Õ/g, 'Õ');
	res = res.replace(/Ö/g, 'Ö');
	res = res.replace(/×/g, '×');
	res = res.replace(/Ø/g, 'Ø');
	res = res.replace(/Ù/g, 'Ù');
	res = res.replace(/Ú/g, 'Ú');
	res = res.replace(/Û/g, 'Û');
	res = res.replace(/Ü/g, 'Ü');
	res = res.replace(/Ý/g, 'Ý');
	res = res.replace(/Þ/g, 'Þ');
	res = res.replace(/ß/g, 'ß');
	res = res.replace(/à/g, 'à');
	res = res.replace(/á/g, 'á');
	res = res.replace(/â/g, 'â');
	res = res.replace(/ã/g, 'ã');
	res = res.replace(/ä/g, 'ä');
	res = res.replace(/å/g, 'å');
	res = res.replace(/æ/g, 'æ');
	res = res.replace(/ç/g, 'ç');
	res = res.replace(/è/g, 'è');
	res = res.replace(/é/g, 'é');
	res = res.replace(/ê/g, 'ê');
	res = res.replace(/ë/g, 'ë');
	res = res.replace(/ì/g, 'ì');
	res = res.replace(/í/g, 'í');
	res = res.replace(/î/g, 'î');
	res = res.replace(/ï/g, 'ï');
	res = res.replace(/ð/g, 'ð');
	res = res.replace(/ñ/g, 'ñ');
	res = res.replace(/ò/g, 'ò');
	res = res.replace(/ó/g, 'ó');
	res = res.replace(/ô/g, 'ô');
	res = res.replace(/õ/g, 'õ');
	res = res.replace(/ö/g, 'ö');
	res = res.replace(/÷/g, '÷');
	res = res.replace(/ø/g, 'ø');
	res = res.replace(/ù/g, 'ù');
	res = res.replace(/ú/g, 'ú');
	res = res.replace(/û/g, 'û');
	res = res.replace(/ü/g, 'ü');
	res = res.replace(/ý/g, 'ý');
	res = res.replace(/þ/g, 'þ');
	res = res.replace(/ÿ/g, 'ÿ');
	return res;
}
PapyJP a écrit :
Puisque personne ne semble avoir un script tout fait, je vais sans doute le faire. C'est plus ennuyeux que difficile à faire...

Euh si, j'avais envoyé un lien d'un script tout fait ! Smiley deal

EDIT : mais je pense comme d'autres que tu aurais meilleur temps de faire un "cherche et remplace" sur tous tes fichiers, ça doit pas mettre une plombe avec un éditeur type Notepad++/Sublime
Modifié par SolidSnake (13 Apr 2016 - 11:23)