现在看我再服务器和本地机器上的测试,同样的配置,同样的代码,但出现了两种奇怪结果。本地:
    name>>>都兰name>>>嘉峪关name>>>大武name>>>山丹name>>>道孚地震台 
服务端:
    name>>>都兰name>>>嘉峪兿大武name>>>山丹name>>>道孚地震叿 其结果编码问题暂且不说,但为什么会出现这样的奇怪现象,一个"嘉峪关"和"大武"分开,一个是"嘉峪兿大武"这样的乱码,请大家帮忙解决一下~!下面是代码:页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Amline.aspx.cs" Inherits="amline_Amline" ContentType="text/html;charset=UTF-8" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Auto-resizing chart</title>
</head>
<body>
<!-- saved from url=(0013)about:internet -->
<!-- amline script-->
  <script type="text/javascript" src="swfobject.js"></script>
 
<%for (int k = 1; k <= 80; k++)
    {
        if (k-1<count)
        {
    %>    
       <%=name[k-1]%>
        
    <br/><div id="flashcontent<%=k %>"></div><br/>
    <%
        }
    }
    return;
    %>
<script type="text/javascript" language="javascript">
// <![CDATA[
var count =parseInt("<%=count %>");        for(i=0;i<count;i++){
            var so = new SWFObject("amline.swf", "amline", "100%", "50%", "8", "#FFFFFF");
    so.addVariable("path", "/");
    so.addVariable("settings_file", encodeURIComponent("amline_settings.xml"));
            so.addVariable("data_file", encodeURIComponent("amline_data"+(i+1)+".xml"));
            so.write("flashcontent"+(i+1));
        }
// ]]>
</script>
<!-- end of amline script -->
</body>
</html>CS文件public partial class amline_Amline : System.Web.UI.Page
{
    public int count;
    public string[] name;    protected void Page_Load(object sender, EventArgs e)
    {
        
        string startYear = Request.QueryString["sy"].ToString().Trim();//开始日期
        string endYear = Request.QueryString["ey"].ToString().Trim();//结束日期
        string idContainer = Request.QueryString["id"].ToString().Trim();//id
        string[] id = idContainer.Split(',');
        string nameContainer = Request.QueryString["name"].ToString().Trim();//name
        
        count = 0;
        name = nameContainer.Split(',');        for (int j = 0; j < name.Length; j++)
        {
            Response.Write("name>>>" + name[j]);
        }        return;
        for (int i = 0; i < id.Length - 1; i++)
        {
            WriteXml(startYear, endYear, id[i],i+1);
        }
        count = id.Length - 1;
    }
}

解决方案 »

  1.   

    这个是编码的问题,换一下编码方式。
    建议使用VS2005自带的导航控件,效率比你写的这个应该高很多,而且没这么麻烦。
    ASP.NET里夹杂着太多ASP的写法,看起来挺别扭的
      

  2.   

    string nameContainer = Server.UrlDecode(Request.QueryString["name"].ToString().Trim());//name
    试一下看看
      

  3.   

    这可能是两台服务器的语言不一致引起的,把文件编码改成Unicode试下
      

  4.   

    已经找到原因: 
    正是由于GB2312编码被UTF-8转化后造成的错误,而原来的数组是个五个元素,再页面中取就变成了4个元素,”嘉峪兿大武 “由于不同的编码转化,发生了黏合效果,所以数组索引报错。