sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    🚨 Skimp | 25% Off until March 30 Buy Now

    Ruby String Encoding

    Scheduled Pinned Locked Moved Developers' Forum
    5 Posts 3 Posters 1.1k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • danielbowringD Offline
      danielbowring
      last edited by

      Is it possible to force the string encoding to UTF-8?

      I'm trying to Marshal objects to strings and then store them in attribute dictionaries, but its possible for then dump to contain the null character which causes the string to be terminated when added to the dictionary. I'm hoping to just swap the null characters out for a different string on write, then swap back to null on read but I can't get the null character into memory.

      Including the character in a file will make the file unable to load, and I can't figure out string encoding so I can't use \x00. Ruby 1.9.3 provides String_instance.force_encoding('UTF-8'), but Sketchup 8 uses 1.8.6 which doesn't have that method.

      I guess what I'm asking is if anybody knows how to force encoding in ruby 1.8.6 or if there is another to store data within the skp file.

      Thanks in advance.

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        Yea, unicode is an issue: http://forums.sketchucation.com/viewtopic.php?f=180&t=20657

        And I ran into the same problems with Marshalling objects: http://forums.sketchucation.com/viewtopic.php?f=180&t=36448&p=320853

        I ended up with using base64 - though it troubled me as the data got bigger. 😞

        Thomas Thomassen β€” SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • Dan RathbunD Offline
          Dan Rathbun
          last edited by

          FYI: 0.chr returns the null character.

          What kind of objects are you storing in attributes ??
          Sometimes it's easier to use .inspect() to build the string data to store, rather than marshaling.

          I'm not here much anymore.

          1 Reply Last reply Reply Quote 0
          • danielbowringD Offline
            danielbowring
            last edited by

            Thanks, base64 encoding fixes the issue.
            I'm storing complex types, basically class instances (or at least the information I can use to regenerate them).

            1 Reply Last reply Reply Quote 0
            • Dan RathbunD Offline
              Dan Rathbun
              last edited by

              Looks a good place to pass on a nice link on String Encoding (that was posted to the ruby-talk-google.)

              http://blog.grayproductions.net/categories/character_encodings

              I'm not here much anymore.

              1 Reply Last reply Reply Quote 0

              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 Login
              • 1 / 1
              • First post
                Last post
              Buy SketchPlus
              Buy SUbD
              Buy WrapR
              Buy eBook
              Buy Modelur
              Buy Vertex Tools
              Buy SketchCuisine
              Buy FormFonts

              Advertisement