페르시아어 텍스트를 라벨로 사용하는 데 문제가 있습니다. 나는 C# mapscript를 사용하고있다. 런타임시 다음을 설정합니다. (버튼 클릭과 같이)mapscript : 페르시아어 텍스트가있는 레이어에 라벨 추가
private void addLayer(String layerName)
{
if (layer == null)
{
//create a layer
layer = new layerObj(mapInstance);
layer.type = MS_LAYER_TYPE.MS_LAYER_POINT;
layer.status = mapscript.MS_ON;
layer.connectiontype = MS_CONNECTION_TYPE.MS_INLINE;
}
// Create a classObj
OSGeo.MapServer.classObj classobj = new OSGeo.MapServer.classObj(layer);
//create Label
labelObj label = new labelObj();
label.font = "sc";
label.type = MS_FONT_TYPE.MS_TRUETYPE;
label.encoding = "utf-8";
classobj.addLabel(label);
//add user data
//create feature
shapeObj feature = new shapeObj(mapscript.MS_SHAPEFILE_POINT);
lineObj line = new lineObj();
pointObj point = new pointObj(50,50, 0, 0);
line.add(point);
feature.add(line);
feature.text = "این متن فارسی است :گژپچ";
layer.addFeature(feature);
}
레이블은 '?????'로 표시됩니다. 어떻게 해결할 수 있습니까? 텍스트 값을 설정하기 전에해야 할 변환이 있습니까? label.font = "sc";
:
텍스트 값을 설정하기 전에 데이터를 유니 코드에서 uft-8로 변환하려고했습니다. 일부 문자는 여전히 정확하게 표시되지 않거나 '□'가 표시됩니다. 다음 코드를 사용했습니다. byte [] bytes = Encoding.Convert (Encoding.Unicode, Encoding.GetEncoding ("utf-8"), Encoding.Unicode.GetBytes ("일부 사용자는 다음 코드를 사용했습니다. StringBuilder s = 새 StringBuilder(); (int i = 0; i