从Win7运行cUrl cmd不起作用,但在Linux上它可以

时间:2010-05-06 19:26:03

标签: utf-8 couchdb

就像标题所说的那样。我在我的Linux机器上从Win7向CouchDB发送一个简单的cUrl cmd,它不起作用。但是如果我在Linux中运行相同的命令,它就可以工作。我发送这个:

curl -X POST 192.168.2.5:5984/test/testdoc -d '{"owner":{"fname":"test","lname":"ing"}}'

从Windows,它不断给我一个“错误:错误的请求,原因:无效的UTF-8 JSON”。 我可以从Windows运行GET命令就好了,我似乎无法POST到CouchDB。

1 个答案:

答案 0 :(得分:15)

不幸的是,Windows shell(cmd.exe)使用引号与Mac OSX和Linux不同。

最简单的解决方法是避免使用单引号并使用双引号,并将JSON文档中的双引号转义为:

curl -X PUT 192.168.2.5:5984/test/testdoc -d "{\"owner\":{\"fname\":\"test\",\"lname\":\"ing\"}}"
{"ok":true,"id":"testdoc","rev":"1-299729b3cb92a371136cb7331c66644d"}

另一种选择是安装不同的shell,例如Bash for Windows:http://win-bash.sourceforge.net/。然后,您可以按照文档进行操作,并更轻松地进行自己的实验。