Вывод арабского/тайского текста в файл Excel с помощью Photoshop JavaScript

У меня есть скрипт для фотошопа, который выводит имя текстового слоя и содержимое слоя в файл Excel CSV. Он отлично работает, если текст английский, но если текст арабский/тайский, он отображается как "??????". Как я могу правильно отображать эти тексты?

Мой скрипт получает имя слоя и содержимое слоя следующим образом:

var iLayer = app.activeDocument.activeLayer.textItem;
var LayerContents = iLayer.contents;

Затем выведите имена в файл Excel следующим образом:

var Names =[ ];
Names.push([LayerName + "," + LayerContents]);

Я попытался изменить стиль шрифта на Arial для арабского языка и Tahoma для тайского, но это не сработало. Я даже пытался конвертировать LayerContents.toString();


person Divine    schedule 04.09.2016    source источник


Ответы (1)


Вам нужно установить текст в Unicode. В приведенном ниже примере я запишу имя слоя в текстовый файл. Принцип тот же, что и для CSV.

// refer to the source document
var srcDoc = app.activeDocument;

var myLayerName = srcDoc.activeLayer.name; // ملعقة
alert(myLayerName) // alerts fine;

write_text(myLayerName, "C:\\temp\\layer_name.txt");


function write_text(str, apath)
{
  // create a reference to a file for output
  var txtFile = new File(apath);

  // open the file, write the data, then close the file
  txtFile.encoding = "UTF8"; // make it unicode
  txtFile.open("w", "TEXT", "????");
  txtFile.writeln(str);
  txtFile.close();
}
person Mr Mystery Guest    schedule 20.12.2016