【问题标题】:Xamarin Forms Android Label displaying extra charactersXamarin Forms Android 标签显示额外字符
【发布时间】:2018-03-23 16:53:27
【问题描述】:

我正在从嵌入的 .txt 文件中提取文本,然后将其显示在标签中。 iOS 很好,但 Android 显示了额外的字符。我错过了一些简单的东西,但不确定是什么。感谢您的帮助。

这个(在 .txt 文件中):

0.2.3
- 修正拼写错误
- 在滑出式菜单中添加了版本号
- 压扁的错误

0.2.2
- 添加了数据库更改日志。
- Bug修复。

0.2.1
- 错误修复

变成这样:

空格字符显示出来。我该如何防止这种情况?

检索文本:

 var assembly = typeof(MainMenuViewModel).GetTypeInfo().Assembly;
 Stream stream = assembly.GetManifestResourceStream("ReleaseNotes.txt");

 var text = "";
 using (var reader = new StreamReader(stream))
 {
     text = reader.ReadToEnd();
 }
 ReleseNotesText = text;

标签:

<Label Text="{Binding ReleseNotesText}" HorizontalTextAlignment="Start" HorizontalOptions="Fill" VerticalOptions="CenterAndExpand" TextColor="{DynamicResource TextColor}" FontSize="18" />

【问题讨论】:

    标签: text xamarin.forms xamarin.android newline


    【解决方案1】:

    您的换行符更有可能是嵌入文本文件流中的\n

    只需将它们转换为正确的环境换行符。换行符可能因运行平台而异...在 .NET 中,您可以使用方便的 Environment.NewLine,因此:

    ReleseNotesText = text.Replace("\n", Environment.NewLine);
    

    编辑:在查看了 cmets 中的确切文本文件后,它看起来像是在使用 U+2028 unicode 序列作为换行符。正确的替换代码是:

    ReleseNotesText = text.Replace("\u2028", Environment.NewLine);
    

    【讨论】:

    • 这不起作用。字符串中没有可见的换行符。奇怪的是,将 .txt 文件中的文本更改为使用“\n”代替按回车键移动到下一行,xamarin 正在转义它,所以它最终像这样“\\n”。
    • 你能把 txt 文件上传到某个地方(不是复制粘贴,而是上传确切的文件),以便我看一下字符吗?
    • 您的文本文件包含换行符的 UTF-8 "E2-80-A8" 序列(unicode U+2028,或行分隔符)...通常不支持作为正确的换行符,除非在 JavaScript 中(以及寻找您的示例的 iOS)...也许它来自 Javascript 生成的 JSON?。请改用text.Replace("\u2028", Environment.NewLine);。我会编辑我的答案
    • 完美的 JCL,成功了。你用什么编辑器来查看这些字符?我尝试了 VSCode、VSMac、所有原生 Mac 编辑器、谷歌文档、SublimeText,但没有一个显示出来。
    • 我实际上复制并粘贴了文本(使用 Notepad++,但任何其他编辑器都应该这样做)并在 dotnetfiddle 中创建了一个小应用程序,以查看该字符在十六进制中是什么(我还测试了解决方案,就在案例):dotnetfiddle.net/7ihgI1 。在 dotnetfiddle 编辑器中,它显示为一个红点(除非我使用 @ 逐字逐句地使用该字符串,否则它编译失败,因为它也将其作为换行符)。将其转换为 UTF8 字节并打印十六进制值。这在解析后不起作用,这就是为什么我需要 txt 文件并且无法从 stackoverflow 问题中复制 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多