@@ -238,21 +238,6 @@ void QgsVectorFileWriter::init( QString vectorFileName,
238
238
239
239
deleteShapeFile ( vectorFileName );
240
240
}
241
- else if ( driverName == " KML" )
242
- {
243
- if ( !vectorFileName.endsWith ( " .kml" , Qt::CaseInsensitive ) )
244
- {
245
- vectorFileName += " .kml" ;
246
- }
247
-
248
- if ( fileEncoding.compare ( " UTF-8" , Qt::CaseInsensitive ) != 0 )
249
- {
250
- QgsDebugMsg ( " forced UTF-8 encoding for KML" );
251
- fileEncoding = " UTF-8" ;
252
- }
253
-
254
- QFile::remove ( vectorFileName );
255
- }
256
241
else
257
242
{
258
243
if ( metadataFound )
@@ -277,6 +262,16 @@ void QgsVectorFileWriter::init( QString vectorFileName,
277
262
QFile::remove ( vectorFileName );
278
263
}
279
264
265
+ if ( metadataFound && !metadata.compulsoryEncoding .isEmpty () )
266
+ {
267
+ if ( fileEncoding.compare ( metadata.compulsoryEncoding , Qt::CaseInsensitive ) != 0 )
268
+ {
269
+ QgsDebugMsg ( QString ( " forced %1 encoding for %2" ).arg ( metadata.compulsoryEncoding ).arg ( driverName ) );
270
+ fileEncoding = metadata.compulsoryEncoding ;
271
+ }
272
+
273
+ }
274
+
280
275
char **options = nullptr ;
281
276
if ( !datasourceOptions.isEmpty () )
282
277
{
@@ -865,7 +860,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
865
860
" *.geojson" ,
866
861
" geojson" ,
867
862
datasetOptions,
868
- layerOptions
863
+ layerOptions,
864
+ " UTF-8"
869
865
)
870
866
);
871
867
@@ -959,7 +955,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
959
955
" *.xml" ,
960
956
" xml" ,
961
957
datasetOptions,
962
- layerOptions
958
+ layerOptions,
959
+ " UTF-8"
963
960
)
964
961
);
965
962
@@ -1048,7 +1045,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1048
1045
" *.gml" ,
1049
1046
" gml" ,
1050
1047
datasetOptions,
1051
- layerOptions
1048
+ layerOptions,
1049
+ " UTF-8"
1052
1050
)
1053
1051
);
1054
1052
@@ -1090,7 +1088,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1090
1088
" *.gpkg" ,
1091
1089
" gpkg" ,
1092
1090
datasetOptions,
1093
- layerOptions
1091
+ layerOptions,
1092
+ " UTF-8"
1094
1093
)
1095
1094
);
1096
1095
@@ -1168,7 +1167,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1168
1167
" *.gpx" ,
1169
1168
" gpx" ,
1170
1169
datasetOptions,
1171
- layerOptions
1170
+ layerOptions,
1171
+ " UTF-8"
1172
1172
)
1173
1173
);
1174
1174
@@ -1233,7 +1233,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1233
1233
" *.kml" ,
1234
1234
" kml" ,
1235
1235
datasetOptions,
1236
- layerOptions
1236
+ layerOptions,
1237
+ " UTF-8"
1237
1238
)
1238
1239
);
1239
1240
@@ -1498,7 +1499,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1498
1499
" *.sqlite" ,
1499
1500
" sqlite" ,
1500
1501
datasetOptions,
1501
- layerOptions
1502
+ layerOptions,
1503
+ " UTF-8"
1502
1504
)
1503
1505
);
1504
1506
@@ -1579,7 +1581,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1579
1581
" *.sqlite" ,
1580
1582
" sqlite" ,
1581
1583
datasetOptions,
1582
- layerOptions
1584
+ layerOptions,
1585
+ " UTF-8"
1583
1586
)
1584
1587
);
1585
1588
// AutoCAD DXF
@@ -1669,7 +1672,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1669
1672
" *.gdb" ,
1670
1673
" gdb" ,
1671
1674
datasetOptions,
1672
- layerOptions
1675
+ layerOptions,
1676
+ " UTF-8"
1673
1677
)
1674
1678
);
1675
1679
@@ -1694,7 +1698,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1694
1698
" *.xlsx" ,
1695
1699
" xlsx" ,
1696
1700
datasetOptions,
1697
- layerOptions
1701
+ layerOptions,
1702
+ " UTF-8"
1698
1703
)
1699
1704
);
1700
1705
@@ -1719,7 +1724,8 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1719
1724
" *.ods" ,
1720
1725
" ods" ,
1721
1726
datasetOptions,
1722
- layerOptions
1727
+ layerOptions,
1728
+ " UTF-8"
1723
1729
)
1724
1730
);
1725
1731
0 commit comments