Android \n 换行符在 textview 中转义

Posted

技术标签:

【中文标题】Android \\n 换行符在 textview 中转义【英文标题】:Android \n newline is escaped in textviewAndroid \n 换行符在 textview 中转义 【发布时间】:2021-09-04 16:11:37 【问题描述】:

我在 php 代码中有echo $result,我正在将结果打印到 textview,我想在多行中显示它,但我在 textView 中得到了这个

Available articles: 28
---------------------------------------
number of clients: 23
Top solded Articles and its beneficient:
Muffin Mix - Lemon Cranberry:161.41
Mushrooms - Black, Dried:148.62
Amaretto:134.01
Longos - Grilled Veg Sandwiches:122.89

这是我的安卓代码

public void processFinish(String output) 
    TextView reprttxt = (TextView)findViewById(R.id.reprttxt);
    output.replace("\\n",System.getProperty("line.separator"));
    reprttxt.setText(output);

请注意,我尝试了output.replace("\\n",System.getProperty("line.separator"));output.replace("\\\n",System.getProperty("line.separator"));,但它不起作用。如何通过修改android Java代码或PHP代码来解决?

【问题讨论】:

尝试替换\n,而不是\\n 对不起,不工作 echo -e "$result"printf "$result"? 【参考方案1】:

对于output,使用CharSquence 而不是StringTextView.setText() 不喜欢 String 包含特殊字符的文本,它会根据情况将其剥离或奇怪地显示 CharSquence 没有这个问题。

【讨论】:

【参考方案2】:

根据this doc,您必须设置像android:maxLines="2" 这样的属性。您可以设置任何您喜欢的值。然后'\n' 应该可以按预期工作。

【讨论】:

【参考方案3】:

字符串没有真正嵌入的换行符'\n' 字符。它有一个"\\n" 子字符串——一个实际的反斜杠后跟一个 n。解决这个问题的正确方法是修复服务器——它不应该像这样发送数据。如果您需要破解,请替换 "\\n",而不是 "\n"

您可以通过\n 在实际输出中的事实来判断这种情况。如果它只是错误类型的分隔符,它要么是空格,要么被忽略。顺便说一句,在 Android 上,行分隔符是 '\n',就像在所有基于 Linux 的系统上一样。

【讨论】:

【参考方案4】:
public void processFinish(String output) 
    TextView reprttxt = (TextView)findViewById(R.id.reprttxt);

    reprttxt.setText(html.fromHtml(output));

示例:输出 = "这是\n两行";

【讨论】:

以上是关于Android \n 换行符在 textview 中转义的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中的 TextView 中添加换行符?

android textview 怎么换行?

android textview怎么处理换行

android textview 不正常换行怎么解决

android textview 每行显示多少字就分行

android 换行符( ) 在TextView中显示不正常的问题