Jump to content

Too Many Quotes


Recommended Posts

I wrote a workflow to translate clipboard smart-quotes into ordinary ones.  It works just fine when run from a shell prompt:

  • pbpaste | textutil -stdin -stdout -convert txt | tr “” \" |tr ’ \' | pbcopy

 

But when I put this into a workflow, my quote marks get doubled and tripled.

 

For example, if I put this in my clipboard:

  • “You’re smart!”

and i run the command line listed at the top of this posting, I get:

  • "You're smart!"

but if I run the exact same command in an Alfred "run script" workflow, I get:

  • """You""'re smart!"""

How do I make Alfred stop messing with the output of my shell script?

Link to comment

Thanks.  I can't see how to attach a file to this forum, so I uploaded it to my dropbox at https://www.dropbox.com/s/lddxkodfq2ens6c/plain-text.alfredworkflow?dl=0

 

I just created it by using the "Keyword to Script to Notification" template, and set run script to:

  • pbpaste | textutil -stdin -stdout -convert txt | tr “” \" |tr ’ \' | pbcopy

I set no escapes, since the script has no input (no {query} parameter)

Link to comment

Could you share the workflow you have created, it may be a simple case of the script escaping in Alfred.

 

[moved to workflow help]

 

Not sure the issue behind this one but thought I would mention Andrew... I tried several iterations of this and noticed that if I make a script, we'll call it convert.sh that does nothing but set a variable to the output of pbpaste, echo's that, and then also writes the value to a text file also. If I copy the text mentioned above, then run the script from a terminal, I see the text echoed as expected, but the string that's written to the file (just doing a simple echo $output > log.txt) shows the string like this when I use less to view it <D2>You<D5>re smart!<D3>. 

 

There's something weird with those smart quotes. It works as expected when I used a string that didn't contain those things. I wonder if they are getting encoded somehow. The strange thing is though is that, when I call the script from alfred, i'm getting those results. Alfred calls an external script that should do the processing and just returned the cleaned up output.

 

I guess I'm rambling at this point. Just wanted to let you know some of the stuff I tested to see if it could help you track this down.

Link to comment

Thanks.  I can't see how to attach a file to this forum, so I uploaded it to my dropbox at https://www.dropbox.com/s/lddxkodfq2ens6c/plain-text.alfredworkflow?dl=0

 

I just created it by using the "Keyword to Script to Notification" template, and set run script to:

  • pbpaste | textutil -stdin -stdout -convert txt | tr “” \" |tr ’ \' | pbcopy

I set no escapes, since the script has no input (no {query} parameter)

 

I've had a bit of a play with this and come up with the following workflow:

 

https://dl.dropboxusercontent.com/u/6749767/Alfred/Workflows/Strip%20smart%20quotes.alfredworkflow

 

It allows you to select some text (in e.g. Textedit), hit the hotkey and have the text replaced with the smart quotes removed.

 

Cheers,

Andrew

Link to comment

Thank you.

I have a theory about what causes the problem with the doubling of the quotes (based on nothing but intuition).  They're represented as a UTF-8 multi-byte character sequence.  My guess is that somebody, somewhere is upset that multiple bytes get paired up with a single byte.

 

I'm *guessing* that when I run the command from a shell prompt, it is using a different character set that when it is run from Alfred.  By using php, your version is picking up PHP's default character set.

 

I wonder if there is a way to specify which character set should be used when a shell is run under Alfred?

 

It figures that the first workflow I'd write would bump up against the margins...

Thanks again.

Link to comment

I wonder if there is a way to specify which character set should be used when a shell is run under Alfred?

 

You may be right... NSTask constrains the UTF-8 normalisation outside of Alfred's control... I wrote a little command line app which helps in this instance in the following thread which also contains discussion about this issue:

 

http://www.alfredforum.com/topic/2015-encoding-issue/

 

Let me know if that helps? :)

Link to comment

If you're using command-line tools, text encoding may very well be the problem. Alfred has an empty environment (like all Mac apps), so default encoding is ASCII, not UTF-8. pbcopy and pbpaste in particular will mangle text if the proper encoding isn't set in its environment.

 

Try adding export LANG=en_US.UTF-8 at the top of your script or use LANG=en_US.UTF-8 your command instead of just your command.

Edited by deanishe
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...