Yanlış CODEPAGE ve Kültür - Php MSBuild çağırıyor

1 Cevap php

Ben Sistemi üzerinden MSBuild çağıran bir php script var:

<?php
system( "msbuild umlaut.proj" );
?>

Bu proje dosyası:

<?xml version="1.0" encoding="UTF-8"?>
<Project 
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
  DefaultTargets="EchoUmlaut" 
  ToolsVersion="3.5">
  <Target Name="EchoUmlaut">
    <Message Text="Umlaute: Ä Ö Ü ä ö ü ß" />
  </Target>
</Project>

Ben komut satırından doğrudan MsBuild çağırdığınızda MSBuild çıkış Almancadır (excpected gibi) ve Umlaut OK (ben 1252'de CHCP) çıkıyor. Ama aramak için php kullanmak Msbuild umlaut yanlış ve MSBuild çıkış İngilizce değiştirildiğinde. Ben bunu önlemek için neler yapabileceğini merak ediyorum.

C:\>chcp
Aktive Codepage: 1252.

C:\>msbuild umlaut.proj
Microsoft (R)-Buildmodul, Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3607]
Copyright (C) Microsoft Corporation 2007. Alle Rechte vorbehalten.

Das Erstellen wurde am 13.04.2010 08:57:04 gestartet.
Projekt "D:\Cvsroot\projekte\e4elaui\v1.0\umlaut.proj" auf Knoten 0 (Standardziele).
  Umlaute: Ä Ö Ü ä ö ü ß
Die Erstellung von Projekt "D:\Cvsroot\projekte\e4elaui\v1.0\umlaut.proj" ist abgeschlossen (Standardziele).


Das Erstellen war erfolgreich.
    0 Warnung(en)
    0 Fehler

Vergangene Zeit 00:00:00

C:\>php call_from_php.php
Microsoft (R) Build Engine Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3607]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 13.04.2010 08:57:11.
Project "D:\Cvsroot\projekte\e4elaui\v1.0\umlaut.proj" on node 0 (default targets).
  Umlaute: Ž ™ š „ ”  á
Done Building Project "D:\Cvsroot\projekte\e4elaui\v1.0\umlaut.proj" (default targets).

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:00

1 Cevap

Php script Sen putenv kullanarak bunları manuel olarak ayarlamanız gerekir içeri kabuk geçer ortam değişkenleri bazı geçirerek değil gibi görünüyor:

bool putenv  (  string $setting  );

sistemini çağırmadan önce kabuğundan onları kopyalamak ve komut yapıştırın.