2012-10-09 66 views
2

如果我使用typescript並在那裏聲明一個字符串,並將該字符串設置爲一些俄文文本。 然後打字稿編譯器編譯成JavaScript而不考慮我在解決方案中使用的編碼。 因此,我得到了「凝血標誌中的問題」而不是普通字母。TypeScript本地化問題

那麼,你知道如何解決它嗎?

+0

你可以發佈代碼到目前爲止你做了什麼嗎? – jrd1

回答

3

您需要將您的文件編碼更改爲UNICODE。 編譯:

var x = "привет мир"; 

class foo { 
    public done() { 
     return "привет мир"; 
    } 
} 

給出了以下JS給我:

var x = "привет мир"; 
var foo = (function() { 
    function foo() { } 
    foo.prototype.done = function() { 
     return "привет мир"; 
    }; 
    return foo; 
})(); 
+0

我應該在哪裏更改編碼爲UNICODE? –

+0

你知道嗎,有什麼奇怪的。 TypeScript編輯窗口顯示生成的JS - 在那裏我看到Broker編碼。並在瀏覽器用戶界面也(如果我提醒某事)。但是當我在瀏覽器中打開生成的JSfile時 - 每封俄文信都可以!奇怪!也許瀏覽器正在進行正確的編碼。 –

+0

複製粘貼帶俄語字符到記事本中的代碼。點擊ctrl + s就可以創建一個UNICODE文件。這在我的瀏覽器中也能正常工作。如果您有問題,請檢查您的瀏覽器設置。 –

1

我有同樣的問題,當我使用CSCRIPT運行tsc.js編譯器。

我發現tsc的輸入文件應該在utf-8 的簽名(BOM)或unicode-16編碼。

如果我使用nodejs來運行tsc.js,即使沒有簽名,輸入文件也可以在utf-8中,一切正常。

1

TypeScript as default在使用visual studio添加時創建ANSI編碼文件。 (或Visual Studio創建ANSI文件作爲標準)

要解決在記事本打開該文件,並使用「另存爲」,改變編碼爲UTF8或UNICODE。