Webdialog to ruby encoding issue on OSX
-
Btw, what is the source for this character?
-
the third last post from the other thread has a rbz that shows the issue on a mac...
http://sketchucation.com/forums/viewtopic.php?f=180%26amp;t=57074%26amp;start=30#p518959returns using 'get_element_value' have bad encoding regardless of html declarations, script encodings, etc...
something is happening internally in SU that screws things up...
try the rbz it's harmless...
john
-
Did someone file a bug report ?
-
@dan rathbun said:
Did someone file a bug report ?
I was going to but I got distracted by work and it's still on my endless todo list...
john
-
@driven said:
the third last post from the other thread has a rbz that shows the issue on a mac...
http://sketchucation.com/forums/viewtopic.php?f=180%26amp;t=57074%26amp;start=30#p518959So this only happen on OSX, not on Windows?
-
@tt_su said:
So this only happen on OSX, not on Windows?
as far as I'm aware it's a mac thing...
I think it's because the internal bash env locale defaults to "C" if not implicedly set
> %x(locale) LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL=whereas same call in 'Terminal.app'
LANG="en_US" LC_COLLATE="en_US.UTF-8" LC_CTYPE="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_ALL="en_US.UTF-8"because it is set...
john -
@driven said:
post a snippet, and I'll run some checks...
Going back to your test here
If you add
Sketchup.active_model.layers.add param_fixin
@dlg2.add_action_callback("trans_L8_fix")The layer name is displayed "élan 勢い Schwung импульс" in Layers Panel, as it is a webdialog.
But in Sketchup's layer window, it's displayed "\u00E9lan \u52E2\u3044 Schwung \u0438\u043C\u043F\u0443\u043B\u044C\u0441", just like what's printed in the ruby console.Any thought on that?
TT > Yes, everything is set to UTF-8. Encoding, meta-tags
-
@driven said:
@tt_su said:
So this only happen on OSX, not on Windows?
as far as I'm aware it's a mac thing...
I think it's because the internal bash env locale defaults to "C" if not implicedly set
> %x(locale) > LANG= > LC_COLLATE="C" > LC_CTYPE="C" > LC_MESSAGES="C" > LC_MONETARY="C" > LC_NUMERIC="C" > LC_TIME="C" > LC_ALL=whereas same call in 'Terminal.app'
LANG="en_US" > LC_COLLATE="en_US.UTF-8" > LC_CTYPE="en_US.UTF-8" > LC_MESSAGES="en_US.UTF-8" > LC_MONETARY="en_US.UTF-8" > LC_NUMERIC="en_US.UTF-8" > LC_TIME="en_US.UTF-8" > LC_ALL="en_US.UTF-8"because it is set...
johnI think this is because SU does not set ENV["LANG"] when launching the subshell.
Steve
-
@ Steve
do you think the two are unrelated?@jiminy-billy-bob said:
Any thought on that?
if I eval it double quoted, I get
élan 勢い Schwung импульсputs (eval('"' + param_fix + '"'))works in UI.messagebox that way as well.
alternatively I wrote [so it is possible] a simple decode method by reversing the JS function back in ruby, it worked but i can't find it...
john
-
eval works great, thanks!
-
@driven said:
@ Steve
do you think the two are unrelated?
johnIt's possible they have the same cause, but I am not sure how to prove that.
The man page for the locale command says:
LANG Used as a substitute for any unset LC_* variable. If LANG is unset, it will act as if set to "C". If any of LANG or LC_* are set to invalid values, locale acts as if they are all unset.So the behavior you get is consistent with LANG not being set by SU when it launches a subshell. Also, if you set ENV[LANG] to a specific locale such as "en_US.UTF-8" in the Ruby Console before doing the %x, the other variables all follow.
So far as I can tell, SU doesn't launch a separate process for a WebDialog (at least I don't see one reported in Activity Monitor). I don't know what environment a WebDialog gets...can it be read from javascript?
Steve
-
@tt_su said:
So this only happen on OSX, not on Windows?
hi TT
did you get a chance to run this on your mac?
and did it confirm what I state, on your setup?
john
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register LoginAdvertisement