2

我有一个用于 Photoshop 的脚本,它将文本图层的名称和图层内容输出到 Excel CSV 文件中。如果文本是英文,它可以正常工作,但如果文本是阿拉伯语/泰语,它会显示为“??????”。如何正确显示这些文本?

我的脚本获取图层名称和图层内容,如下所示:

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

然后像这样在 Excel 文件中输出名称:

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

我尝试将字体样式更改为阿拉伯语的 Arial 和泰语的 Tahoma,但它不起作用。我什至尝试转换 LayerContents.toString();

4

1 回答 1

0

您需要将文本设置为 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();
}
于 2016-12-20T15:37:03.687 回答