Code Monkey home page Code Monkey logo

Comments (5)

bacongravy avatar bacongravy commented on June 23, 2024 1

Hello @strega-nil, thank you for reporting this issue. My LANG is usually set to en_US.UTF-8 and probably explains why I've never seen this before.

It should be straightforward to override the LANG in the macinbox process to always be UTF8. I'll work on reproducing this issue and then identify a fix.

from macinbox.

strega-nil avatar strega-nil commented on June 23, 2024

Thanks @bacongravy!!!

bitmoji

from macinbox.

bacongravy avatar bacongravy commented on June 23, 2024

I haven't been able to reproduce this issue, so I'm not sure if the change I had in mind fixes it. I was able to create a Terminal profile with the language set to "Western (ASCII)" which resulted in me having LANG=en_US.US-ASCII, but macinbox didn't fail when I ran it.

from macinbox.

bacongravy avatar bacongravy commented on June 23, 2024

My idea was to put ENV['LANG'] = 'en_US.UTF-8' in cli.rb near the top of the start method.

from macinbox.

adamwolf avatar adamwolf commented on June 23, 2024

I ran into this, and I have a few more details.

  1. I ran into this when running this as root. As a user, I had LANG and LC_ALL set already, but as root, I did not. I know I didn't do anything hinky with those because this was pretty soon after a fresh install.

  2. I tried the ENV['LANG'] thing in cli.rb, and it didn't work, which led me to investigate. The issue seems to actually be with the encoding that Ruby uses in the io Popen calls in Task. You could override the encoding there, with :encoding.I didn't know how unicode things worked in Ruby, actually, so I looked it up. (mostly at https://docs.ruby-lang.org/en/2.1.0/Encoding.html)

By default Ruby sets the external encoding of an IO object to the default external encoding. The default external encoding is set by locale encoding or the interpreter -E option. ::default_external returns the current value of the external encoding.

The default external encoding may also be set through ::default_external=, but you should not do this as strings created before and after the change will have inconsistent encodings. Instead use ruby -E to invoke ruby with the correct external encoding.

I am not a Ruby expert, and I am not a macinbox expert at all, but my gut feeling would be to detect LC_ALL and LC_LANG being empty, maybe next to where you detect if you were ran with sudo. If this is mainly happening to folks who are running this as root, well... don't do that :)

from macinbox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.