谷歌卫星地图下载器_谷歌高清卫星地图下载器-水经注软件论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 313|回复: 0

[SharpMap软件教程] 关于sharp map 的中文编码问题 - 废墟中的垃圾

[复制链接]
  • TA的每日心情
    难过
    2015-9-15 10:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-10-14 09:36 | 显示全部楼层 |阅读模式
    本帖最后由 螃蟹哥 于 2015-10-14 09:40 编辑

    [size=1em]
    [backcolor=rgb(244, 244, 244) !important]1

    2

    [backcolor=rgb(244, 244, 244) !important]3

    4

    [backcolor=rgb(244, 244, 244) !important]5

    [backcolor=rgb(244, 244, 244) !important]case "System.String":
                        if (_Encoding == null)
    [backcolor=rgb(244, 244, 244) !important]                        return _FileEncoding.GetString(br.ReadBytes(dbf.Length)).Replace("\0", "").Trim();
                        else
    [backcolor=rgb(244, 244, 244) !important]                        return _Encoding.GetString(br.ReadBytes(dbf.Length)).Replace("\0", "").Trim();



    这里的编码如果没有设置,那么就是文件的编码读取了。


    如果只是想解决中文读取的问题,那么第一个方法出来了。修改这段程序为:


    [size=1em]
    [backcolor=rgb(244, 244, 244) !important]1

    [backcolor=rgb(244, 244, 244) !important]<span style="color: #ff0000;">case "System.String":<br>                    return Encoding.Default.GetString(br.ReadBytes(dbf.Length)).Replace("12", "").Trim(); <br></span>



    通过测试可以通过。



    其实开始的时候我说了,导致我们不知道怎么处理中文编码有一点 就是官方给的代码有一点问题。这里当然不是说他运行错误。

    而且我们可以把代码修改一下,修改成:


    [size=1em]
    [backcolor=rgb(244, 244, 244) !important]1

    2

    [backcolor=rgb(244, 244, 244) !important]3

    4

    [backcolor=rgb(244, 244, 244) !important]5

    6

    [backcolor=rgb(244, 244, 244) !important]7

    8

    [backcolor=rgb(244, 244, 244) !important]9

    [backcolor=rgb(244, 244, 244) !important]//Set up a river layer
                SharpMap.Layers.VectorLayer layRivers = new SharpMap.Layers.VectorLayer("Rivers");
    [backcolor=rgb(244, 244, 244) !important]            //Set the datasource to a shapefile in the App_data folder
                ShapeFile sf = new SharpMap.Data.Providers.ShapeFile(HttpContext.Current.Server.MapPath(@"~\App_data\rivers.shp"), true);
    [backcolor=rgb(244, 244, 244) !important]            sf.Encoding = System.Text.Encoding.GetEncoding("gb2312");
                nts = new NtsProvider(sf);
    [backcolor=rgb(244, 244, 244) !important]            layRivers.DataSource = nts; //Define a blue 1px wide pen
                layRivers.Style.Line = new Pen(Color.Blue, 1);
    [backcolor=rgb(244, 244, 244) !important]            layRivers.SRID = 4326;



    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    申请友链|手机版|小黑屋|Archiver|谷歌卫星地图下载器_谷歌高清卫星地图下载器-水经注软件论 ( 蜀ICP备05030520号

    返回顶部
    x

    扫描二维码加群

    GMT+8, 2019-7-20 00:31 , Processed in 0.119644 second(s), 31 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表