Wie kann ich Visual Studio speichern Sie alle Dateien als UTF-8 ohne Signatur auf Projekt-Ebene?
Ich versuche zum konfigurieren eines VS-c++ - Projekt in einer Weise, dass es kompiliert werden kann, die die gcc in Linux. Es scheint, dass ich brauche, die Dateien werden codiert als UTF-8 ohne Signatur (das ist nicht der Standard). Ist es möglich, etwas über das Projekt oder die Lösung zu level, so dass, nachdem jemand öffnet die Lösung und speichert Ihre änderungen, die Dateien sind immer noch UTF-8?
Bitte beachten Sie, dass es ist ein offenes Projekt, so kann ich nicht bitten Sie alle, die ändern Ihre Visual Studio-Einstellungen.
Ich gehe davon aus das ist ein cr/lf vs. cr problem, wenn so ein alternativer Ansatz könnte sein, ändern Sie Ihre Linux-makefile, so dass es dos2unix ist die Quelle als Teil von es zu bauen... oder Sie können in der Lage sein, um konfigurieren Sie die source-control, extrahieren Sie die entsprechende Zeile enden.
cr/lf vs. cr ist in Ordnung, die tatsächliche Codierung der Datei (d.h. die ersten zwei Byte in der Datei und dann jedes zweite byte - denn es scheint utf-16)
cr/lf vs. cr ist in Ordnung, die tatsächliche Codierung der Datei (d.h. die ersten zwei Byte in der Datei und dann jedes zweite byte - denn es scheint utf-16)
InformationsquelleAutor Grzenio | 2011-03-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Visual Studio wird das BOM entfernen, gehen Sie zu "Speichern unter..." und wählen Sie "Mit Codierung Speichern..." und wählen Sie "UTF-8 ohne Signatur". Sobald es gespeichert ist, ohne die Stückliste, die VS wird nicht fügen Sie es wieder. Leider gibt es keine Möglichkeit, diese Standardeinstellung für alle Dateien in VS und muss manuell durchgeführt werden, jedes mal, wenn eine Datei gespeichert wird, für die erste Zeit.
Wenn Sie Cygwin installiert haben, können Sie batch-ändern von vorhandenen Dateien mit diesem kleinen script:
Oder, wenn Sie nicht über Cygwin, aber Sie haben vim können Sie dieses batch-Skript.
Hinweis, dies in einem batch-Skript, es scheint, ich brauche die [EINGABETASTE] drücken, jedes mal, wenn vim beendet, das ist nicht der Fall mit der cygwin-version.
find: missing argument to
-exec"Die zweite (wieder unter Linux) gibt Fehler:
bash: $i: ambiguous redirect
Ja nicht tun, das zweite (ich entfernt es aus dem Beitrag jetzt). Ich habe nie wirklich versucht, ich sah es woanders, und es sah richtig. Ich vermisste die
\;
auf die erste (die ich zuvor verwendet haben, für genau dieses problem), es ist nun behoben.Wenn VS in der Lage ist, sich zu erinnern, dass es gespeichert hat die Datei ohne BOM einmal, es muss die Informationen irgendwo. Öffnen Sie eine Datei, speichern Sie es mit der Codierung, Nähe VS und Blick auf das änderungsdatum der Dateien. Einer von Ihnen soll wurden aktualisiert, und Sie können von innen sehen, um zu sehen, wie die Datei ist markiert.
VS nicht erinnern, etwas darüber, wie Sie eine Datei gespeichert haben (zumindest nicht, dass ich mir bewusst bin). Es funktioniert einfach nicht die Kodierung ändern, die auf vorhandenen Dateien (also die script-batch ändern Sie die Codierung außerhalb VS).
InformationsquelleAutor
in vs2010 werden sollte "ok", um Global zu sehen:
UTF-8 ohne BOM
haben nur vs express bei mir am mo, und natürlich, dass nicht das haben. seufz.
InformationsquelleAutor
Es scheint nicht, wie dies ist eine Einstellung, die Sie setzen können, in eine propertyPage. Die besten, die ich denken kann, ist das erstellen eines einfachen Skripts (wie in dieser link), das als pre-build-Schritt und re-schreibt die Dateien. Das würde wahrscheinlich den job zu erledigen, solange das Skript gehalten wurden, mit dem Projekt, könnte aber super nervig.
InformationsquelleAutor
Scheint es, dass Visual Studio ist zu raten, die Zeichen-Codierung basierend auf dem Inhalt der Datei. Wenn Sie eine standard-Kommentar " - header in jede Datei, und die Bemerkung enthalten, die eine eindeutige Zeichensatz UTF-8, VS sollte das richtige zu tun. Ein Nebeneffekt ist, dass einige Linux-Programme wird auch die Datei erkennen als explizit UTF-8 als gut.
InformationsquelleAutor
Dem Weg habe ich Sie:
(mit System.Diagnostik)
dauerte 20 Minuten, schreiben-1. und ein paar Minuten ausführen.
Ich kann mir nicht vorstellen das öffnen und speichern alle 300 Dateien manuell
InformationsquelleAutor