ostgresql转换问题.ppt
,OGR中shp2pgsql问题初探,转换接口,PostgreSQL数据库,转换接口,客户端,ArcGIS数据生产,同样的字符在不同编码的文件或数据库中二进制存储串不同 采用ArcCatalog创建shp文件时,通常采用系统默认编码;OGR转换接口对于dbf文件中属性值字符处理在版本前后处理方法不同;PostgreSQL数据库默认采用UTF-8字符编码;QGIS客户端可在加载数据前指定相应数据文件或数据库的编码。,OGR,转换接口,PostgreSQL数据库,转换接口,客户端,ArcGIS数据生产,OGR,ESRI给ArcGIS Desktop提供了一个CODE PAGE CONVERSION 函数,使得桌面程序可以通过该程序以各种编码形式读取或写入dbf文件;ArcGIS Desktop读取文件时,如果dbf文件未指定编码信息,则桌面程序根据dbfDefault来解译该文件信息;ArcGIS Catalog创建dbf文件时,则根据设定的dbfDefault来确定生成文件的编码形式(如指定UTF-8,则生成dbf文件编码为UTF-8),如果未指定该编码信息,则是默认采用系统的字符编码(中文系统采用CP936,英文系统采用ISO-8859-1),转换接口,PostgreSQL数据库,转换接口,客户端,ArcGIS数据生产,OGR,之前未涉及“字符编码”处理;OGR中shapefile格式驱动读取图层dbf文件时,会获取dbf文件中存储的字符编码信息pszCodePage,但之前的版本均未考虑字符编码的处理;自版本开始,读取shp文件时具体字符处理如下:首先获取dbf文件中存储的字符编码信息;然后判断SHAPE_ENCODING环境变量的设定,如果设定则表示dbf文件采用此编码(这样做主要针对dbf文件中未存储编码信息,而用户知道其编码信息的情况);最后将其转换成统一的UTF-8进行操作。但是目前GDAL项目并不支持所有编码形式到UTF-8编码的转换,所以会在获取编码后进行检测。,转换接口,PostgreSQL数据库,转换接口,客户端,ArcGIS数据生产,OGR,目前支持的转换,转换接口,PostgreSQL数据库,转换接口,客户端,ArcGIS数据生产,OGR,PostgreSQL数据库默认采用UTF-8字符编码;,shp2pgsql-W GBK/jxh/XZQ.shp xzq.sql表示shp文件时GBK编码,以便于正确转换为数据库字符编码形式(UTF-8)的文件,转换接口,PostgreSQL数据库,转换接口,客户端,ArcGIS数据生产,OGR,用户在加载矢量数据时可以指定其编码;,转换接口,PostgreSQL数据库,转换接口,客户端,ArcGIS数据生产,OGR,在OGR转换接口设计中充分考虑字符编码影响,实现目前的CP936编码(中文系统)到UTF-8编码的转换。,感谢您的关注Thanks for your attention,欢迎关注新浪微博红猪工作室_http:/,