Xamarin Forms:粘贴的测试包含 + 符号而不是白色 space
Xamarin Forms: Pasted test contains + symbol instead of white space
去年我问了一个 关于在 xamarin 表单中复制条目值的问题。
当我现在测试它时,文本中的空白由 + 符号填充。粘贴表情符号时也无法正常工作。
我正在使用 Xamarin.Plugins.Clipboard NuGet 包将文本复制到剪贴板。将文本复制到剪贴板时,我使用以下代码:
CrossClipboard.Current.SetText(message);
在设备中长按时会显示粘贴选项。我正在使用该选项粘贴复制的文本。
请提出避免 + 符号的解决方案?也适用于表情符号复制粘贴。
提前致谢。
问题应该需要WebUtility.UrlDecode(String)正文:
Converts a string that has been encoded for transmission in a URL into a decoded string.
如果在 HTTP 流中传递空格和标点符号等字符,它们可能会在接收端被误解。 URL 编码将 URL 中不允许的字符转换为等效的十六进制转义序列。 UrlEncode 方法创建一个 URL 编码的字符串。
URL 解码将十六进制转义序列替换为相应的 ASCII 字符等效项。例如,当嵌入到 URL 编码的文本块中时,转义序列 %3c
和 %3e
被解码为字符 <
和 >
。
示例如下:
using System.Net;
Console.WriteLine("Encode:" + WebUtility.UrlEncode(""));
// out ==> %F0%9F%98%82
Console.WriteLine("Decode:" + WebUtility.UrlDecode("%F0%9F%98%82"));
// out ==>
Console.WriteLine("Encode:" + WebUtility.UrlEncode("this is a text message"));
// out ==> this+is+a+text+message
Console.WriteLine("Decode:" + WebUtility.UrlDecode("this+is+a+text+message"));
// out ==> this is a text message
解法:
不直接CrossClipboard.Current.SetText(message);
试试 CrossClipboard.Current.SetText( WebUtility.UrlDecode(message));
去年我问了一个
当我现在测试它时,文本中的空白由 + 符号填充。粘贴表情符号时也无法正常工作。
我正在使用 Xamarin.Plugins.Clipboard NuGet 包将文本复制到剪贴板。将文本复制到剪贴板时,我使用以下代码:
CrossClipboard.Current.SetText(message);
在设备中长按时会显示粘贴选项。我正在使用该选项粘贴复制的文本。
请提出避免 + 符号的解决方案?也适用于表情符号复制粘贴。
提前致谢。
问题应该需要WebUtility.UrlDecode(String)正文:
Converts a string that has been encoded for transmission in a URL into a decoded string.
如果在 HTTP 流中传递空格和标点符号等字符,它们可能会在接收端被误解。 URL 编码将 URL 中不允许的字符转换为等效的十六进制转义序列。 UrlEncode 方法创建一个 URL 编码的字符串。
URL 解码将十六进制转义序列替换为相应的 ASCII 字符等效项。例如,当嵌入到 URL 编码的文本块中时,转义序列 %3c
和 %3e
被解码为字符 <
和 >
。
示例如下:
using System.Net;
Console.WriteLine("Encode:" + WebUtility.UrlEncode(""));
// out ==> %F0%9F%98%82
Console.WriteLine("Decode:" + WebUtility.UrlDecode("%F0%9F%98%82"));
// out ==>
Console.WriteLine("Encode:" + WebUtility.UrlEncode("this is a text message"));
// out ==> this+is+a+text+message
Console.WriteLine("Decode:" + WebUtility.UrlDecode("this+is+a+text+message"));
// out ==> this is a text message
解法:
不直接CrossClipboard.Current.SetText(message);
试试 CrossClipboard.Current.SetText( WebUtility.UrlDecode(message));