使用luasocket的HTTP GET中文字符
2012-11-24 3:57:52
收藏:0
阅读:105
评论:1
我使用luasocket获取一个包含中文字符“开奖结果”的网页(网页本身以charset =“gb2312”编码),如下所示:
require "socket"
host = '61.129.89.226'
fileformat = '/fcopen/cp_kjgg_dfw.jsp?lottery_type=ssq&lottery_issue=%s'
function getlottery(num)
c = assert(socket.connect(host, 80))
c:send('GET ' .. string.format(fileformat, num) .. " HTTP/1.0\r\n\r\n")
content = c:receive('*l')
while content do
if content and content:find('开奖结果') then -- failed
print(content)
end
content = c:receive('*l')
end
c:close()
end
--http://61.129.89.226/fcopen/cp_kjgg_dfw.jsp?lottery_type=ssq&lottery_issue=2012138
getlottery('2012138')
不幸的是,它无法匹配预期的字符:
content:find('开奖结果') -- failed
我知道Lua能够找到unicode字符:
Lua 5.1.4版版权所有(C) 1994-2008 Lua.org,PUC-Rio
> if string.find("This is 开奖结果", "开奖结果") then print("found!") end
found!
那么我猜这可能是由于luasocket如何从网络检索数据引起的。有人可以对此进行解释吗?
谢谢。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
如果页面采用了 GB2312 编码,而你的脚本文件本身采用 utf-8 编码,那么匹配是不会成功的。因为
.find()方法会寻找 utf-8 码位,而它只会忽略你要查找的字符,因为它们的编码方式不同...å¼€ 奖 结 æžœ GB bfaa bdb1 bde1 b9fb UTF-16 5f00 5956 7ed3 679c UTF-8 e5bc80 e5a596 e7bb93 e69e9c