J'essaie d'écrire une page HTML MSIE seulement (que j'appellerai la "page de titre") qui permet à quelqu'un d'enregistrer une page HTML générée (que je appelez "Nouvelle page") en cliquant sur un bouton. Ce que j'ai découvert, c'est que la boîte de dialogue "Enregistrer sous" qui apparaît ne permet pas d'enregistrer la "Nouvelle page" comme UTF-8 sans nomenclature. Il est plutôt sauvegardé en Unicode (UTF-8) qui, à son tour, a été déterminé par les navigateurs comme étant UTF-16. Ci-dessous un exemple de code de la « Page de titre »:Javascript et HTML: Enregistrement du fichier en UTF-8 sans nomenclature
<html>
<head>
<script>
/**
*Takes the information in the form and arranges it in the proper format.
*/
function save()
{
str = "Hello World";
mydoc = document.open();
mydoc.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
mydoc.write("\r\n\r\n");
mydoc.write("<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n\t<head>\r\n\r\n\r\n\r\n\r\n<!--LOOK FOR \"EDIT HERE\"//-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n\r\n<title>");
/*Inserts str in the title*/
mydoc.write(str);
mydoc.write("</title>\r\n\r\n\t</head>\r\n\r\n\r\n\t<body>\r\n\r\n\r\n<!--EDIT HERE//-->\r\n\r\n<H1>");
/*Inserts form variables from here*/
mydoc.write(str);
mydoc.write("</H1>\r\n\r\n\r\n<!--DO NOT EDIT BEYOND THIS POINT//-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n</body>\r\n</html>\r\n\r\n");
mydoc.execCommand("saveAs",true,"*.html");
mydoc.close();
}
</script>
</head>
<body>
<p align=right><input type="button" value="save" onclick="save()"></p>
</body>
</html>
J'ai vérifié « Nouveau fichier » avec http://web-sniffer.net/ et il me dit que « Nouveau fichier » est en cours d'enregistrement de cette façon:
<code>ÿþ!<�D�O�C�T�Y�P�E� �h�t�m�l� �P�U�B�L�I�C� �"�-�/�/�W�3�C�/�/�D�T�D� �X�H�T�M�L� �1�.�0 �T�r�a�n�s�i�t�i�o�n�a�l�/�/�E�N�"� �"�h�t�t�p�:�/�/�w�w�w�.�w�3�.�o�r�g�/�T…</code>
Est Y at-il quelque chose que je puisse faire pour l'empêcher de sauvegarder "New Page" en UTF-16 de mon côté? Ou cela n'a rien à voir avec le code?
Aussi, il y a une liste déroulante dans la boîte de dialogue "Enregistrer sous" qui me permet de changer le codage des caractères, mais tout ce qui fait est de sauvegarder la "page titre" pas la "nouvelle page".
Quelle plate-forme? Navigateur? – some
Si son MSIE8, vous pouvez sélectionner le format de fichier lors de l'enregistrement. On dirait que c'est par défaut unicode (utf-16). Choisissez UTF-8 à la place. – some