Flex乱码问题,后台C#

1.前端采用Flex做的表现,后端采用C#开发,之间用Ajax+Json方式进行数据交互。

2.在Chrome上显示没问题,在QQ浏览器上显示就是乱码。

3.通过百度大概了解到是字符集不匹配,网上很多解决方法都是说在Flex代码中增加:System.useCodePage=true,经过各种测试,发现无用。

 

System.useCodePage=true

 

4.又有人指出在包含Flex运行的主页面上html头部增加utf8字符集,经过测试,发现还是无用。

        

<meta http-equiv="Content-Type" content="text/html"; charset="uft-8">

 

5.后来找到一篇文章说在Flex界面中所有的控件指定字体 ,如:宋体。经过测试这样可以解决Flex显示界面乱码的问题,但是有两个问题,第一:设置工作量大,第二:通过Ajax和后台交互的数据中含有中文显示还是乱码。

6.在网上基本就只能找到这些解决方法,后来静下心来仔细分析最终解决了该问题。

-----------------------------------------------------------------------------------------------------------

最终解决办法:

1:Flex的as源码第一句话就表明了Flex内部使用utf8字符集,因此必须保证C#后台返回来的数据也是utf8字符集,根本不用设置:System.useCodePage=true

2:Flex中定义页面全局字体样式,这样就保证了控件的字体不乱码

  

global
{
    fontFamily:"微软雅黑";
}

3:在C#后台返回Json字符串时,增加ContentType的类型,该类型中指定字符集为utf8,最终解决Json中文数据显示正常

context.Response.ContentType = "application/x-json;charset=UTF-8";
context.Response.Write(strJsonData);
context.Response.End();

 

posted @ 2020-09-15 21:34  coolsundy  阅读(292)  评论(0编辑  收藏  举报