Scripting, strings and diacritics
-
I type this code in a script window:
Firsts = "F P T V" Seconds = "à é ï ø û" nalts = 10 for f in Firsts.split(" "): for s in Seconds.split(" "): print "%s%s " %(f, s) *nalts
It runs and it works fine (print the expected output). When I try to save the script or RF crashes or I get this traceback:
Traceback (most recent call last): File "Combinations RF.py", line 10, in AttributeError: 'NoneType' object has no attribute 'selection' Traceback (most recent call last): File "lib/scripting/pyDocument.pyc", line 37, in writeSafelyToURL_ofType_forSaveOperation_error_ UnicodeEncodeError: 'ascii' codec can't encode character u'\xe0' in position 106: ordinal not in range(128) Traceback (most recent call last): File "lib/doodleDelegate.pyc", line 81, in sendEvent_ File "lib/scripting/pyDocument.pyc", line 37, in writeSafelyToURL_ofType_forSaveOperation_error_ UnicodeEncodeError: 'ascii' codec can't encode character u'\xe0' in position 106: ordinal not in range(128)
I guess it has to do with "à é ï ø û".
When I save the code in Textmate, "à é ï ø û" get changed in the script for "à é ï ø û".I even tried using
"# -*- coding: utf-8 -*-"
as first line of code but didn't work.
Might it be a Python bug? I've been trying to deal with this for a while and it's a headache.BTW, is there a way of getting "à" as output from "agrave"?
In some way RF does it in the Space Center window.Thanks as always,
Jca
-
dank u Frederik
-
This is idd a bug :) and already solved in the beta and will be fixed in the next release.
-
Thanks jo! with this info I'll manage I guess.
At this point something that just works it's perfect, the dark magic in the insides is not important now. I'll check later.
-
I hope somebody will post a more elaborate answer but I think you should convert the non ascii characters so python can read them.
Seconds = u"\u00E0 \u00E9 \u00EF \u00F8 \u00FB"