Как скопировать фрагмент текста Unicode?

У меня есть поле «данные» с текстом Unicode, которое отображается правильно. Я хочу скопировать его часть и поместить в другое поле под названием «someData».

Я попробовал следующий скрипт в кнопке

on mouseUp
  put word 2 of line 1 of the unicodeText of field "data" into t
  set the unicodeText of field "someData" to t
end mouseUp

Текст, отличный от Unicode, отлично отображается в поле «someData», а текст Unicode — нет.


person z--    schedule 19.04.2013    source источник


Ответы (4)


Вот еще один лайнер, который вы можете протестировать:

set the unicodeText of field 2 to the unicodeText of word 2 of field 1
person hliljegren    schedule 22.04.2013

Вы, вероятно, могли бы уйти с кодировкой UTF8, а затем синтаксическим анализом, а затем перекодированием

on mouseUp
    put word 2 of line 1 of uniDecode(the unicodeText of field "data","UTF8") into t
    set the unicodeText of field "someData" to uniEncode(t,"UTF8")
end mouseUp
person Monte Goulding    schedule 20.04.2013

on mouseUp
   put unicode the unicodeText of word 2 of field "data" into field "someData"
end mouseUp

должно сработать.

Марек

person Marek Niesiobędzki    schedule 20.04.2013

Я не эксперт в юникоде, но может быть подсказка в том, что LC рассматривает большинство элементов юникода как свойства. Из-за этого можно установить, скажем, uniCodeText поля:

set the unicodeText of fld 1 to "U+400"

Но нельзя установить это свойство или любое другое свойство в переменной. Рассмотрим следующие два обработчика. Предполагается, что существует два поля: «fld 1» и «fld 2».

on mouseUp
   set the useUnicode to "true"
   set the unicodeText of fld 1 to "U+400" -- an example
   set the unicodeText of fld "f2" to the uniCodeText of fld 1
end mouseUp

on mouseUp
   set the useUnicode to "true"
   set the unicodeText of fld 1 to "U+400"
   put fld 1 into temp
   set the unicodeText of fld "f2" to temp
end mouseUp

Первый работает, второй нет. В вашем примере вы пытаетесь поместить отображаемый uniCode в переменную. Я не думаю, что вы можете "поставить" такие вещи. Вы должны установить свойство.

Теперь, сказав это, проверьте команду «put uniCode». Это может обойти проблему собственности. Отпишись, если получится.

Крэйг Ньюман

person dunbarx    schedule 20.04.2013