使用c#,为什么字母r和b在标签文本中被解释为HTML中断,我如何停止它



我有一些代码,它从标签中获取地址文本,并试图通过HTML换行来分割该字符串,以获得字符串数组中的每个地址行:

string[] straAddressLines = lbBillStreetAddress.Text.Split("<br/>".ToCharArray());

当标签包含小写r或b时,代码将这些字符解释为HTML换行符。例如,如果文本是";1 Albert Street";,得到的阵列是:

[0]: 1 Al
[1]: e
[2]: t St
[3]: eet

由于字符串中没有HTML中断,我希望它是:

[0]: 1 Albert Street 

有人能告诉我这里发生了什么吗?我该如何阻止这种行为?我尝试过HTML和URL编码/解码,但没有区别。

这是因为您正在为Split方法传递一个char数组,所以它按每个字符分割字符串。由于要按<br/>进行拆分,因此需要将其作为string而不是char[]:传递

lbBillStreetAddress.Text.Split(new [] { "<br/>" }, StringSplitOptions.None);

如果您使用的是.NET 5+(或.NET Core 2+(,那么有一个更方便的重载,它只需要一个字符串作为分隔符:

lbBillStreetAddress.Text.Split("<br/>");

最新更新