web-dev-qa-db-fra.com

UTF-8 sans nomenclature

J'ai des fichiers javascript dont j'ai besoin pour être sauvegardés dans UTF-8 (sans nomenclature), chaque fois que je les convertis au format correct dans Notepad ++ , ils sont rétablis en UTF-8 avec nomenclature lorsque je les ouvre. dans Visual Studio. Comment puis-je empêcher VS2010 de le faire?

Une autre question, est-ce que UTF-8 sans signature dans Visual Studio est identique à UTF-8 sans BOM?

163
kabaros

BOM ou Byte Order Mark est parfois assez agaçant. Visual Studio ne modifie pas le fichier à moins que vous ne le sauvegardiez (comme l'a dit Hans). 

Et voici la solution à votre problème: .__ Si vous souhaitez enregistrer un fichier avec d’autres encodages, sélectionnez Enregistrer sous, étendez le bouton Enregistrer dans la boîte de dialogue du fichier et sélectionnez "Enregistrer avec encodage". Ou si vous voulez vous débarrasser de ce paramètre de façon permanente, ouvrez simplement le menu Fichier et sélectionnez "Options de sauvegarde avancées". Sélectionnez ensuite "UTF-8 sans signature" (et cela répond également à votre dernière question :). Oui, "UTF-8 sans signature" est identique à sans BOM.

205
Dave81

J'ai créé l'extension Fix File Encoding qui empêche Visual Studio 2010+ d'ajouter une nomenclature à des fichiers UTF-8.

23
Sergey Vlasov

Maintenant avec des images.

  1. Allez à File -> Save As.

enter image description here

  1. Ensuite, sur le bouton Enregistrer, cliquez sur le triangle et cliquez sur Save with Encoding...

enter image description here

  1. Cliquez sur ok pour écraser le fichier, puis dans la liste des encodages, trouvez UTF-8 Without signature -> Cliquez sur OK.

enter image description here

J'espère que cela vous fait gagner du temps.

19
Matas Vaitkevicius

Malheureusement, cela ne fonctionne pas avec les fichiers csproj. Il n’existe aucune "option de sauvegarde avancée" et même si vous l’avez réglée sur "UTF-8 sans signature" pour un fichier cs, les fichiers csproj sont toujours enregistrés avec BOM. Si vous utilisez VSS, il se plaint toujours des fichiers de projet.

5
Wray

Récemment, j’ai trouvé ce petit outil de ligne de commande qui ajoute ou supprime la nomenclature sur des fichiers codés UTF-8 arbitraires: Utilités de nomenclature UTF ( nouveau lien sur github)

Petit inconvénient, vous ne pouvez télécharger que le code source en clair C++. Vous devez créer le fichier makefile (avec CMake , par exemple) et le compiler vous-même. Les fichiers binaires ne sont pas fournis sur cette page. Cependant, pour un développeur de logiciel, cela ne devrait poser aucun problème.

2
Wernfried Domscheit

Pour vs2010 c ++, il y aura des problèmes avec UTF8 sans nomenclature, lorsque les fichiers source contiennent des caractères multi-octets (par exemple, chinois).

Ces caractères ne seront pas reconnus correctement sans nomenclature et entraîneront un échec de la saisie.

2
Martin Wang

Même avec la solution de Dave81, Visual Studio 2015 Community restituait toujours mon fichier en UTF8-BOM chaque fois que je sauvegardais ce fichier html.

Lorsque j'ai créé ce fichier html, j'ai cliqué avec le bouton droit de la souris sur le projet et sélectionné "Ajouter", puis ajouté un fichier HTML.

Par défaut, Visual studio inclura une balise <meta charset = "utf-8" /> dans votre fichier HTML.

En enlevant simplement l'étiquette, puis en appliquant la solution de Dave81, le problème a été résolu pour de vrai cette fois.

Il semble que Visual Studio analyse votre fichier html et, lorsqu'il voit cette balise, le convertit en UTF8-BOM sans tenir compte du format de fichier d'origine (UTF8 sans BOM).

** J'aurais fait un commentaire directement sous la solution de Dave81, mais je n'avais pas assez de points pour le faire ... 

1
Jonny

UTF-8 - "Enregistrer sous" (sans signature) par défaut - Demande d'inclusion du paramètre par défaut pour UTF sans signature

VS 2017 supporte nativement EditorConfig donc une solution recommandée consiste à ajouter un fichier .editorconfig à votre base de code et à définir charset => utf-8. Ensuite, une fois que vous enregistrez un fichier, il sera enregistré au format UTF-8 sans nomenclature.

1
Dave Anderson

Pour Visual Studio Code, procédez comme suit:

  1. En bas à droite, sélectionnez le codage actuel  enter image description here
  2. Dans les options, sélectionnez Sauvegarder avec les caractères enter image description here
  3. Dans les options, sélectionnez UTF-8 enter image description here
0
Mahesh