ASP.NET应用之字符串编码小结

最近在写一个使用XXS(跨网站脚本,Cross Site Scripting)做一个应用遇到一些编码方面的问题。总结如下:

-C#中字符串使用UTF8编码,如“ABCDE@中国”算作8个字符。

-C#中字符型变量也使用UTF8编码。

-为了不同字符集网页的都可以显示中文,用aspx页面写入客户端的javascript脚本需要以Response的ContentEncoding 要设为System.Text.Encoding.UTF8类型才不会导致东亚字符集(中文,韩文,日文)出错。而aspx文件的编码形式无所谓。

-静态javascript脚本的文件编码形式应为UTF8,否则其中的中文内容无法正确显示。

-写入客户端的javascript脚本,如果包含中文内容应使用NCR (Numeric character reference) 进行转换。

最后是一段NCR转换的c#实现。

 

         public   static   string  NCRConverter( string  InputStr)
        
{
            
string result = "";

            
for (int i = 0; i < InputStr.Length; i++)
            
{
                
char t = InputStr[i];
                
if (t > 128)
                
{
                    result 
+= "&#" + Convert.ToUInt16(t).ToString() + ";";
                }

                
else
                
{
                    result 
+= t;
                }

            }

            
return result;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值