批處理集成ogr2ogr工具,中文亂碼解決方案

最近工作中涉及到對tab文件的檢查,tab不是交互文件,傳統的io讀寫對其無法操作。需要藉助gdal,gis官網上可以相應的jar包,配置環境變量後,通過java對其進行操縱。此種方法我已實現,效率不高。有小夥伴想用java進項集成的,可以參考這個博客,裏面說的很詳細,http://blog.csdn.net/huyishero/article/details/61680556。

接下來就如主題,說說批處理集成ogr,以及中文亂碼的問題。

1.首先下載gdal,http://download.gisinternals.com/release.php下載對應的版本


2.配置環境變量,配置環境變量後,cmd下,任意位置都可以執行ogr,就可以不用到指定的目錄下了

SDK_ROOT=D:\ogr2ogr\gdal64\release-1800-x64-dev\release-1800-x64(ogr安裝目錄,SDKShell.bat的上一級)
GDAL_DATA=%SDK_ROOT%bin\gdal-data
GDAL_DRIVER_PATH=%SDK_ROOT%bin\gdal\plugins
PYTHONPATH=%SDK_ROOT%bin\gdal\python;%SDK_ROOT%bin\ms\python
PROJ_LIB=%SDK_ROOT%bin\proj\SHARE
PATH=%SDK_ROOT%bin;%SDK_ROOT%bin\gdal\python\osgeo;%SDK_ROOT%bin\proj\apps;%SDK_ROOT%bin\gdal\apps;%SDK_ROOT%bin\ms\apps;%SDK_ROOT%bin\gdal\csharp;%SDK_ROOT%bin\ms\csharp;%SDK_ROOT%bin\curl;%PATH%

3.將兩個mif文件導入oracle庫裏面,然後就行相關的sql批處理操作就可以了。

下面說說中文亂碼問題

中文亂碼分爲兩種:

1.gdal版本問題:

這個簡單,你只要將語句到ogr的SDKShell.bat裏面執行,看看導入的庫的中文時候亂碼,如果亂碼,則是此gdal版本問題,建議換成低版本gdal。


2.windows環境

用個ogr的同學對其中命令多熟悉,主要說說紅框的部分。


我遇到的情況是這樣的,我在SDKShell.bat執行上面的語句沒問題,但是我將語句放在run.bat中,執行,表裏面的中文字段就會亂碼,很是困惑,後來我同事說windows是gbk編碼,雖然之前我設置成了utf-8編碼,但是還沒起作用,抱着試試的心態,將他設置成了gbk,如上圖紅框,set NLS_LANG=.ZHS16GBK。中文亂碼問題解決,再此記錄下,有明白的同學可以一起交流下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章