首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Diacritics / Umlauts通过Applescript来执行shell脚本

Diacritics / Umlauts通过Applescript来执行shell脚本
EN

Stack Overflow用户
提问于 2016-02-27 04:05:24
回答 1查看 265关注 0票数 0

在Applescript中,我试图将接收到的URL作为参数传递给do shell script命令,以便将其与curl一起使用。

对于规则字符,这个过程工作得很好,但是只要我的参数包含像Umlauts这样的特殊字符,它就会变得很时髦。

curl确实下载了一些东西,但是用圣保罗等替换了这个字母,这当然不会给我带来正确的结果。

我该怎么做,才能让这件事起作用?我对Applescript和编码问题不太熟悉。

我目前的设置如下:

代码语言:javascript
复制
set download_URL to item 1 of arguments
do shell script "curl " & download_URL & " > targetFile.html"

有些例子说明了发生了什么:

代码语言:javascript
复制
Äquivozität ---> Ãquivozität
Ökolikör ---> Ãkolikör
Übermütigkeit ---> Ãbermütigkeit
Schweißfuß ---> SchweiÃfuÃ

这使我的困惑更加严重。All、of、one和呈现为but,但在编辑掩码中和在所涉站点中,它们都呈现如下图像所示。

另外,通过对html文件的一些业余挖掘,我发现我需要传递字母Ü,而不是字母%C3%9C。因此,如果我通过%C3%9Cbermut而不是Übermut,整个过程就会正常工作。然而,我当然想避免为所有的解说词创建一个翻译表。

有人能弄清楚这里到底发生了什么具体的编码问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-28 17:10:25

经过更多的研究,我发现了我需要的urlEncode我的字符串。这样,字母Ü将被%C3%9C所取代,并且它对我的目的是有效的。

Applescript似乎本机不支持这一点,但可以使用php进行转换。我在这里找到了一个方法:https://discussions.apple.com/message/9801376#9801376

所以,在我的例子中,我是这样用的:

代码语言:javascript
复制
set keyword to item 1 of arguments

set encodedKeyword to do shell script "php -r 'echo trim(urlencode(" & "\"" & keyword & "" & "\"));'"

do shell script "curl https://www.myUrl.com/" & encodedKeyword & ".html > targetFile"

这样的话,对我来说很管用。如果有更好的方法--也许是在Applescript中可以直接使用的东西--可以随意发布另一个答案,那么我将更改接受的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35665516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档