手动转换ASCII和.NET字符
|
我正在编写一些代码来擦除我的ASP.NET站点的用户输入.我需要擦除输入以删除对ASCII字符145,146,147,148的所有引用,这些引用偶尔会从我的mac用户那里获得输入,这些用户正在复制和粘贴他们在Mac上的文字处理器中写入的内容. 我的问题是我认为应该输出相同文本的以下三个字符串. string test1 = Convert.ToChar(147).ToString();
string test2 = String.Format("'{0}'",Convert.ToChar(147));
char[] characters = System.Text.Encoding.ASCII.GetChars(new byte[] { 147 });
string test3 = new string(characters);
然而,当我将ASP TextBox设置为等于以下内容时 txtShowValues.Text = test1 + "*" + test2 + "*" + test3; 我得到test1的空白值,test2正常工作,test3输出为’?’. 有人可以用不同的方式解释发生的事情.我希望这将有助于我理解.NET如何使用超过128的字符的ASCII值,以便我可以编写一个很好的清理脚本. 编辑 通过“正常工作”我的意思是它输出一个卷曲的报价给我的浏览器. 第二次编辑 char[] characters2 = System.Text.Encoding.Default.GetChars(new byte[] { 147 });
string test4 = new string(characters2);
第三次编辑 FOUTH EDIT 解决方法字符147是U 0093 SET TRANSMIT STATE.与0-255范围内的所有Unicode字符一样,它与相同数字的ISO-8859-1字符相同. ISO-8859-1为这个不可见的控制代码分配了147.你想到的不是’ASCII’甚至’ISO-8859-1′,而是Windows代码页1252.这是一个非标准的编码,就像8859-1,但是将字符128-159分配给各种印刷扩展,如智能报价,而不是很大程度上无用的控制代码.在代码页1252中,字符147是“,即U 201C LEFT DOUBLE QUOTATION MARK. 如果要将Windows代码页(通常误导性地称为“ANSI”)转换为Unicode字符,则需要指定所需的代码页,例如: System.Text.Encoding.getEncoding(1252).GetChars(new byte[] { 147 })
System.Text.Encoding.Default将为您提供服务器上的默认编码.对于西欧语言环境中的服务器,这将是1252.在其他地方,它不会.在服务器应用程序中依赖于语言环境的默认代码页通常不是一个好主意. 在任何情况下,您都不应该获得像147这样的字节,表示“在Web应用程序的输入中”.只有当您的页面本身处于代码页1252编码时才会发生这种情况(并且只是为了混淆和误导更多,当您说您的页面采用ISO-8859-1格式时,浏览器将默默使用代码页1252).如果你没有为它指定任何编码,你的页面也可能在1252(浏览器猜测;其他语言环境会猜测不同的代码页,所以它们都是一团糟). 确保您对Web应用程序中的所有编码使用UTF-8和mark your pages as such.今天,所有Web应用程序都应使用UTF-8. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Windows Workflow Foundation的替代方案
- asp.net-core – 在Visual Studio CTP2中的ASP.VNext项目中
- asp.net-mvc-5 – 我需要在MVC Razor中编码属性值吗?
- asp.net – asp:ContentPlaceHolder和代码块问题
- asp.net-mvc – 如何在ASP .NET MVC中对参数进行URL编码
- asp.net-mvc-3 – 在MVC视图中使用条件编译符号
- asp.net-mvc – WebAPI ModelBinder错误
- asp.net-mvc – 获取ASP.Net MVC中任何文件的完整网址
- asp.net – 向实体框架添加其他属性4代码首先是CTP 5实体
- .net-4.0 – 从自定义IHttpHandler调用MvcHttpHandler.Exec
- asp.net – IIS表达请求的执行时间要长4倍
- ASP.NET等价的服务器端包括
- 如何在ASP.NET MVC 4中选择自动完成文本字段值时
- asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数
- asp.net-mvc – ASP.NET MVC FileStreamResult不
- asp.net核心 – 在ASP.NET Core的WebDeploy期间,
- asp.net – 处理程序执行子请求时出错’System.W
- 从ASP.Net页面通过C#将NetworkCredential传递给H
- asp.net-mvc – ModelState.IsValid总是返回fals
- asp.net – 静态方法的缺点是什么?
