首页 / 浏览问题 / 组件GIS / 问题详情
解析dwg时,Layer的中文名称被编码
3EXP 2023年08月01日

使用产品:supermap iobjects 10.2.1

操作系统:linux

问题详细描述:解析dwg时,Layer的中文名称被编码,通过sql查询数据集时,无法查询到数据。部分文件存在此问题,并且同样的产品版本,同样的文件在windows上面解析正常。尝试过设置linux的默认编码为中文,并没有解决。

解析Dwg的代码:

DatasourceConnectionInfo connInfo = WorkspaceUtil.createConnInfo(filePath);
Datasource datasource = workspace.getDatasources().open(connInfo);
Dataset dataset = WorkspaceUtil.getDataset(datasource, "");
DatasetVector datasetVector = (DatasetVector) dataset;
Recordset allRecordset = datasetVector.getRecordset(false, CursorType.STATIC);
while (!allRecordset.isEOF()) {
	String layerString = allRecordset.getFieldValue("Layer").toString();
	LogUtil.info(layerString);
	allRecordset.moveNext();
}

原始Layer:

被编码后的Layer:

1个回答

您好,根据上述描述情况,建议从以下 2 方面着手进行排查:

  1. 检查当前 Linux 系统设置的系统字符集是什么?需要设置为 zh_CN.UTF-8,大小写需完全保持一致,若设置成 zh_CN.utf8 是无法正确识别中文的;
  2. 检查当前 iObjects Java 组件的 bin 目录下是否存在 adint.dat 文件,若缺失的话,则从对应版本的 iDesktopX Linux 版本包的 bin 目录中找到并拷贝到 iObjects Java 组件的 bin 目录下。

希望可以帮到您。

2,258EXP 2023年08月01日

您好,谢谢您的解答。

两个方法都尝试过了。方法一没有解决;方法二中没有找到adint.dat文件。

1、设置了中文字符集

2、下载的10.2.1的supermap idesktopX中没有您提到的adint.dat文件

请问是否是我哪个步骤不对,或者您那边可以提供下这个文件嘛。

在 iDesktopX 11i 的 linux 包里面有,10.2.1的是没有的

...