我有一个photoshop脚本,它将文本图层和图层内容的名称输出到Excel CSV文件中。如果文本是英文,它的工作正常,但如果文本是阿拉伯文/泰文,它就像这样显示" ??????"。如何正确显示这些文本?
我的脚本获取图层名称和图层内容,如下所示:
var iLayer = app.activeDocument.activeLayer.textItem;
var LayerContents = iLayer.contents;
然后在Excel文件中输出名称,如下所示:
var Names =[ ];
Names.push([LayerName + "," + LayerContents]);
我尝试将字体样式更改为Arial for Arabic和Tahoma for Thai,但它不起作用。 我甚至尝试过转换LayerContents.toString();
答案 0 :(得分: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();
}