2009-05-08 8 views
41

Czy istnieje sposób zmuszenia VS do używania Unicode zawsze, zamiast dziwnego ISO-coś?jak zmienić kodowanie pliku źródłowego w projekcie csharp (urządzenie visual studio/msbuild)?

Pracuję nad csproject winapp przy użyciu Visual Studio 2008 na Vista (polskie ustawienia regionalne). Problem pojawia się, gdy buduję projekt na Win Server 2003 (angielski język) - wtedy polski znak diakrytyczny zniknął.

Sprawdziłem, że przyczyną problemu jest niewłaściwe kodowanie pliku źródłowego. Wygląda na to, że pliki źródłowe nie używają kodowania UTF-8.

Odpowiedz

91

Problem: Kompilator uruchomiony z wiersza poleceń nie może przetworzyć pliku źródłowego z powodu dodanych przeze mnie znaków międzynarodowych.

Rozwiązanie: Zapisz plik źródłowy jawnie w kodowaniu UTF-8, aby zachować znaki międzynarodowe.

Jak:

* open the problematic file in Visual Studio. 
* on the File menu click “Advanced Save Options“ 
* from “Encoding” combo select “Unicode (UTF-8 …“ 
* click OK. 

jesteś ustawiony. Zaakceptuj serwer budowania i resztę zespołu czekającego na zielony.

+3

Wymyśliłem to kilka chwil temu. Zapisałem jeden plik do testu używając "UTF-with-BOM" i naprawiłem kilka nieprawidłowych ciągów. Czy jest jakieś ustawienie Visual Studio do korzystania z UTF dla wszystkich źródeł? Naprawdę głupio jest zmienić ją ręcznie na kilkaset plików. – tomo

+0

Istnieje jednak pewna praca - możesz poprosić studio graficzne o użycie innego kodowania, ustawiając na przykład regionalne ustawienia komputerów na, powiedzmy, angielski. To z kolei zmusiłoby VS do używania "Europy Zachodniej - Codepade 1252" zamiast "Unicode UTF-8 - Codepage 65001". Ponownie działa to w wersji Express i jestem pewien, że będzie to w pełnej aplikacji. – ruslander

+4

To obejście mnie nie zadowala. Ustawiłem regionalne ustawienie komputera, aby celowo polerować, więc przełączanie nie jest opcją. Przejście na CP 1252 również nie jest opcją. Chcę ustawić jawnie CP65001. Spędziłem trochę czasu na badaniach i widzę, że szablony VS 2008 są w porządku - wszystkie one są UTF-8 z BOM. Źródłem wszelkiego zła są szablony od niechlujnych programistów od zewnętrznych producentów komponentów. Również najnowsze wydanie ASP.NET MVC ma ten problem. – tomo

1

Miałem te same problemy z projektem VS2015 vb.net i rozwiązałem je dodając znacznik <CodePage>1250</CodePage> do pliku vbproj/csproj. Zrobiłem to po znaczniku <SchemaVersion>, przebudowałem projekt i zadziałało to dla mnie. Miałem problemy z polskimi literami, takimi jak ż, ą itp. Możesz także wypróbować UTF-8 - 65001, ale nie sprawdziłem, czy to działa.

Powiązane problemy