TypeScript 本地化问题

Posted

技术标签:

【中文标题】TypeScript 本地化问题【英文标题】:TypeScript localization issues 【发布时间】:2012-10-09 21:38:05 【问题描述】:

如果我使用打字稿并在那里声明一个字符串,并将该字符串设置为一些俄语文本。 然后 typescript 编译器编译为 javascript,而不考虑我在解决方案中使用的编码。 所以我得到的是“rombic 符号中的问题”而不是普通字母。

那么,你知道如何解决它吗?

【问题讨论】:

你能发布你到目前为止所做的代码吗? 【参考方案1】:

使用 Visual Studio 添加时,TypeScript 默认会创建一个 ANSI 编码文件。 (或 Visual Studio 标准创建 ansi 文件)

修复在记事本中打开文件并使用“另存为”并将编码更改为 UTF8 或 UNICODE。

【讨论】:

【参考方案2】:

您需要将文件编码更改为 UNICODE。 编译:

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

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

给我下面的JS:

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

【讨论】:

我应该在哪里将编码更改为 UNICODE? 你知道,有什么奇怪的。 TypeScript 编辑窗口显示生成的 JS - 在那里我看到了损坏的编码。在浏览器 UI 中也是如此(如果我发出警告的话)。但是当我在浏览器中打开生成的 JSfile 时 - 每个俄语字母都可以!奇怪的!也许浏览器会即时纠正编码。 将带有俄语字符的代码复制粘贴到记事本中。点击 ctrl+s 它将创建一个 UNICODE 文件。这在浏览器中也适用于我。如果有问题,请检查您的浏览器设置。【参考方案3】:

当我使用 cscript 运行 tsc.js 编译器时,我遇到了同样的问题。

我发现 tsc 的输入文件应该是 utf-8 带签名 (BOM) 或 unicode-16 编码。

如果我使用 nodejs 运行 tsc.js,即使没有签名,输入文件也可能是 utf-8 格式,一切正常。

【讨论】:

以上是关于TypeScript 本地化问题的主要内容,如果未能解决你的问题,请参考以下文章

使用枚举重载 TypeScript 函数

TypeScript 分布式条件类型 - 附加类型参数约束

在 Typescript 中使数组元素可以为空

TypeScript入门知识一(字符串特性)

来了,TypeScript 4.3 发布!

一篇缺失的 TypeScript 介绍