相关疑难解决方法(0)

GDAL GDALRATSetValueAsString()如何保存汉字(c#)?

我需要GDAL的帮助.带有中文符号的字符串值未被正确读取/保存(C#).

对于SAVING网格值,我们使用:
private static extern void GDALRATSetValueAsString(IntPtr handle,int row,int field,[In] [MarshalAs(UnmanagedType.LPStr)] string value); 方法(c#)保存字符串值,似乎这个方法将字符串保存为ANSI字符串.

阅读:

private static extern IntPtr GDALRATGetValueAsString(IntPtr handle, int row, int field);
Run Code Online (Sandbox Code Playgroud)

在.示例我的字符串"银行Flamwood C2"有​​通过指针获取值的方法(在GDALRATGetValueAsString方法中使用):

var pointer = GDALRATGetValueAsString(GDALRasterAttributeTableH, row, field);
    a)    var b = Marshal.PtrToStringUni(pointer);       // value: "??????2"
    b)    var a = Marshal.PtrToStringAnsi(pointer);      // value: "??Flamwood C2"
    c)    var c = Marshal.PtrToStringAuto(pointer);      // value: "??????2"
    d)    var d = Marshal.PtrToStringBSTR(pointer);       //Throws an error out of memory.
Run Code Online (Sandbox Code Playgroud)

问:所以如何保存Unicode字符串(所以我可以使用这个Marshal.PtrToStringUni(指针))或者很可能如何将Unicode字符串保存到GDALRAT(GDAL RAT - GDAL栅格属性表)?

GDAL版本:1.11.1 …

c# string unicode gdal

10
推荐指数
1
解决办法
503
查看次数

标签 统计

c# ×1

gdal ×1

string ×1

unicode ×1