相关疑难解决方法(0)

Unicode可打印字符的范围是多少?

任何人都可以告诉我Unicode可打印字符的范围是什么?[例如Ascii可打印字符范围是\ u0020 - \u007f]

unicode character-encoding unicode-string

45
推荐指数
5
解决办法
3万
查看次数

从字符串中删除隐藏的字符

我的问题:

我有一个.NET应用程序,通过电子邮件发送新闻稿.在Outlook中查看简报时,outlook会显示一个问号,代替无法识别的隐藏字符.这些隐藏的角色来自最终用户,他们将构成简报的html复制并粘贴到表单中并提交.如果c#trim()出现在字符串的结尾或开头,则会删除这些隐藏的字符.在gmail中查看简报时,gmail会忽略它们.当粘贴word文档中的这些隐藏字符并打开"显示段落标记和隐藏符号"选项时,符号在较大的矩形内显示为一个矩形.组成简报的文本也可以是任何语言,因此接受Unicode字符是必须的.我已经尝试循环遍历字符串以检测字符,但循环不识别它并通过它.还要求最终用户在提交之前先将html粘贴到记事本中是不可能的.

我的问题:
如何使用C#检测并消除这些隐藏的字符?

.net c# string hidden-characters

25
推荐指数
4
解决办法
5万
查看次数

在 C# 中使用/不使用正则表达式清除不需要的十六进制字符

我必须以更好的方式清除异常消息中的十六进制字符。目前它可以手动替换字符,这看起来完全是灾难,如下所示:

\n
            var clearedStr = str.Replace(Convert.ToString((char)0x01), "")\n            .Replace(Convert.ToString((char)0x02), "")\n            .Replace(Convert.ToString((char)0x03), "")\n            .Replace(Convert.ToString((char)0x04), "")\n            .Replace(Convert.ToString((char)0x05), "")\n            .Replace(Convert.ToString((char)0x06), "")\n            .Replace(Convert.ToString((char)0x07), "")\n            .Replace(Convert.ToString((char)0x08), "")\n            .Replace(Convert.ToString((char)0x0B), "")\n            .Replace(Convert.ToString((char)0x0C), "")\n            .Replace(Convert.ToString((char)0x0E), "")\n            .Replace(Convert.ToString((char)0x0F), "")\n            .Replace(Convert.ToString((char)0x10), "")\n            .Replace(Convert.ToString((char)0x11), "")\n            .Replace(Convert.ToString((char)0x12), "")\n            .Replace(Convert.ToString((char)0x13), "")\n            .Replace(Convert.ToString((char)0x14), "")\n            .Replace(Convert.ToString((char)0x15), "")\n            .Replace(Convert.ToString((char)0x16), "")\n            .Replace(Convert.ToString((char)0x17), "")\n            .Replace(Convert.ToString((char)0x18), "")\n            .Replace(Convert.ToString((char)0x19), "")\n            .Replace(Convert.ToString((char)0x1a), "")\n            .Replace(Convert.ToString((char)0x1b), "")\n            .Replace(Convert.ToString((char)0x1c), "")\n            .Replace(Convert.ToString((char)0x1d), "")\n            .Replace(Convert.ToString((char)0x1e), "")\n            .Replace(Convert.ToString((char)0x84), "")\n            .Replace(Convert.ToString((char)0x86), "")\n            .Replace(Convert.ToString((char)0x87), "")\n            .Replace(Convert.ToString((char)0x88), "")\n            .Replace(Convert.ToString((char)0x89), "");\n
Run Code Online (Sandbox Code Playgroud)\n

例如,带有十六进制字符的消息如下:

\n

其中一些字符

\n

实际上我写了一个正则表达式,但它适用于像 0x1e 这样的十六进制字符,但不适用于其等效字符:

\n

但我需要找到这些字符,而不是等效的十六进制字符:

\n

"","\xe2\x80\x98","\xc6\x92","","","\xe2\x80\x99","","\xc5\xa1","\xcb\x86" …

.net c# regex asp.net hex

3
推荐指数
1
解决办法
4035
查看次数