Unicode 谷歌计算器中的特殊字符

Unicode 谷歌计算器中的特殊字符,unicode,terminal,google-api,osx-mountain-lion,calculator,Unicode,Terminal,Google Api,Osx Mountain Lion,Calculator,在一次采访中,我被告知谷歌将UTF-8编码的响应传递给查询。这解决了非中断空间(A0)在通过curl传递到我的终端后被混淆的问题。通过将旋度输出输送到inconv并转换为UTF-8,解决了这一问题。然而,即使有了这个解决方案,我仍然得到一些奇怪的输出 考虑以下2米到英尺的转换: 这是我在浏览器和其他地方看到的输出: {lhs: "2 meters",rhs: "6.56167979 feet (6 feet 6\x3csup\x3e47\x3c/sup\x3e\x26#8260;\x3csub

在一次采访中,我被告知谷歌将UTF-8编码的响应传递给查询。这解决了非中断空间(A0)在通过curl传递到我的终端后被混淆的问题。通过将旋度输出输送到inconv并转换为UTF-8,解决了这一问题。然而,即使有了这个解决方案,我仍然得到一些奇怪的输出

考虑以下2米到英尺的转换:

这是我在浏览器和其他地方看到的输出:

{lhs: "2 meters",rhs: "6.56167979 feet (6 feet 6\x3csup\x3e47\x3c/sup\x3e\x26#8260;\x3csub\x3e64\x3c/sub\x3e inches)",error: "",icc: false}
预期产出为:

{lhs: "2 meters",rhs: "6.56167979 feet (6 feet 6 47/64 inches)",error: "",icc: false}
我可以使用正则表达式或其他解决方案进行文本替换,但我想知道这里发生了什么。有什么见解吗


我正在运行Mac OS X Mountain Lion 10.8.2

这个问题的公认答案是否定的,所以您似乎只需要尝试对其功能进行反向工程。这里它似乎表示分数47/64,因此分子47在
标记内,分母64在
标记内,然后
使用
\xnn
符号进行转义,
nn
是字符的十六进制代码。这似乎没有多大意义,因为样式的上标和下标是毫无意义的,在HTML标记中这样做是奇怪的,而转义标记分隔符是奇怪的。然而,主要的问题是,有时,
可能意味着上标以使表达式成为指数,因此删除此类信息可能会扭曲信息。

通过curl访问的Google Calculator返回JSON。Google正在使用\xHH符号,因为这是JSON的标准。如果输出被发送到浏览器(或任何其他解析HTML的东西)而不是标准输出,那么只需要一个好的JSON解码器

让我们看看我们可以从命令行做些什么来解析JSON

echo-en$(curl-s'http://www.google.com/ig/calculator?hl=en&q=4^22'>~/temp.html

这使我们可以通过浏览器查看有效的HTML,但我们需要将所有内容简化为可以通过标准输出显示的内容


echo-en“$(curl-s——连接超时10”http://www.google.com/ig/calculator?hl=en&q=2%20m%20in%20feet“| sed-e的//&/g'-e:a-e的//*>///g/我从未问过谷歌计算器是否有官方API。我的问题完全是关于逆向工程的。我已经回答了我自己的问题。回答得很好,谢谢。我正在努力解决同样的问题,但是用Java。关于如何处理
\xnn
字符,您有什么建议吗?@Alp您在什么地方开始提问了吗?我需要更多的细节来了解您的问题并提供帮助。谢谢您的关注。我问了一个问题,让它开始工作了: