2015-03-26 3 views
0

У меня есть сценарий, который берет содержимое буфера обмена и записывает их в файл, чтобы я мог вставлять содержимое в InDesign. Он работал раньше, но теперь он заменяет все цитаты этими персонажами, «, Äù». Я вставить до и после:Получение странных символов при вставке из буфера обмена в InDesign

До:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<?aid style="50" type="snippet" readerVersion="6.0" featureSet="257" product="8.0(370)" ?> 
<?aid SnippetType="PageItem"?> 
<Document LinkedSpreads="" DOMVersion="8.0" Self="d"> 
</Document> 

После:

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes”?> 
<?aid style=”50” type=”snippet” readerVersion=”6.0” featureSet=”257” product=”8.0(370)” ?> 
<?aid SnippetType=”PageItem”?> 
<Document LinkedSpreads=”” DOMVersion=”8.0” Self=”d”> 
</Document> 

я обычно могу сказать, если мой код изменяет вещи, но я думаю, что, возможно, что-то изменилось в InDesign ? Я возвращаюсь к своим изменениям, чтобы убедиться, что это то, что я сделал, но, в среднем, кто-нибудь видел это?

Если я вставляю код в файл .idms и затем размещаю документ, он продолжает работать. У этого сценария возникают проблемы.

ответ

0

Я не уверен, что это было, но я не установил кодировку файла в «UTF-8» и, похоже, сейчас работает. Вот фрагмент кода, я использую:

doc.textPreferences.typographersQuotes = false; 
var tf = doc.textFrames.add(); 
var story = tf.parentStory; 
//story.appliedLanguage = app.languagesWithVendors[0]; 
story.insertionPoints[0].select(); 
app.paste(); 
var str = story.contents; 
if (str.indexOf("‚Äú")!=-1 || str.indexOf("Äù")!=-1) { 
    alert("Weird quotes found. Try saving to an .idms file and then placing it."); 
    //str = str.replace("”", '"'); 
    //alert(str.substr(0,200)); 
} 

tf.remove(); 
var f = File(Folder.temp + "/temp_snippet.idms"); 
//f.encoding = "UTF-8"; // commented out here 
f.open('w'); 

Но я с тех пор раскомментирована, что линия снова, и это все еще работает. Гремлины.

Обновление: оно перестало работать. Затем он снова начал работать. Затем остановился. Все без изменения кода импорта. Он продолжает работать, если сначала сохранить его в текстовый файл IDMS, а не скопировать его в буфер обмена.

Вот полный сценарий, http://pastebin.com/F5Re4C2R.

+0

Это ошибка кодирования символов, так как вы заметили себя. Причина, по которой он все еще может работать, может состоять в том, что первоначально предполагалось, что новый файл должен быть в UTF-16 или Unicode. Теперь, когда он явно сохраняется как UTF-8, автоопределение может выполнить свою работу и найти правильную кодировку. –

+0

Я добавил ссылку на сценарий, который я использовал. –