F# 伪造:CreateCSharpAssemblyInfo与德国umlauts有困难
当我在属性值中使用德语umlauts时,它们被转换为垃圾F# 伪造:CreateCSharpAssemblyInfo与德国umlauts有困难,f#,f#-fake,F#,F# Fake,当我在属性值中使用德语umlauts时,它们被转换为垃圾 Target "AssemblyInfo" (fun _ -> CreateCSharpAssemblyInfo "./src/App1/Properties/AssemblyInfo.cs" [ Attribute.Title "App1" Attribute.Product "some umlauts: äüö" ] )
Target "AssemblyInfo" (fun _ ->
CreateCSharpAssemblyInfo "./src/App1/Properties/AssemblyInfo.cs"
[
Attribute.Title "App1"
Attribute.Product "some umlauts: äüö"
]
)
构建完成后,我在AssemblyInfo.cs中发现类似的内容:
[assembly: AssemblyProductAttribute("some umlauts: ���")]
如何避免这种情况?我已通过将umlaut字符替换为相应的unicode代码来解决此问题:
Attribute.Product "some umlauts: \u00e4\u00fc\u00f6"
更新
使用Unicode字符确实有效,但真正的原因是编码问题。将构建脚本的编码更改为UTF-8后,UMLAUT被正确翻译。(感谢@Carsten和@mthierba)这可能是(您的脚本)的编码有问题(注意:我从未尝试过)-您能尝试更改编码并查看它会产生什么结果吗?如果不是的话,这可能是githubI上的错误记录的一个很好的候选者。我以前也遇到过同样的问题,正如@Carsten所建议的,这是因为伪脚本文件是用ANSI编码而不是UTF-8保存的。@Carsten和mthierba:你们都是对的。这确实是一个编码问题。把它作为答案贴出来,我会给第一个评分。卡斯滕和@mthierba:你们都是对的。这确实是一个编码问题。把它贴出来作为答案,我会给第一个学分。