蹭网的是猪 = ²äÍøµÄÊÇÖí 这是怎么转换的?

2015-02-25 00:39:48 +08:00
 weisoo
某些路由不支持中文SSID,某论坛里有人说输入²äÍøµÄÊÇÖí,显示出来的SSID就是"蹭网的是猪",我试了确定可以。
请问这是怎么转换的?
4115 次点击
所在节点    问与答
7 条回复
Sylv
2015-02-25 02:07:49 +08:00
'蹭网的是猪' 的 GBK 编码为:'\xb2\xe4\xcd\xf8\xb5\xc4\xca\xc7\xd6\xed'。
'²äÍøµÄÊÇÖí' 的 Latin-1编码同样为:'\xb2\xe4\xcd\xf8\xb5\xc4\xca\xc7\xd6\xed'。
因此你输入 '²äÍøµÄÊÇÖí',而这些路由器使用的编码是 Latin-1,那么路由器保存的 SSID 值其实是 '\xb2\xe4\xcd\xf8\xb5\xc4\xca\xc7\xd6\xed'。
而你电脑则用的是 GBK 编码去解读 SSID 值,于是就识别为 '蹭网的是猪'。
peterxutong
2015-02-25 22:08:56 +08:00
ls果然犀利
hzqim
2015-02-26 16:07:17 +08:00
@Sylv 也就是找到latin-1和gbk互换的方法就可以自定义中文SSID了?指点一二吧,谢谢。
Sylv
2015-02-26 17:13:28 +08:00
@hzqim 是可以这么说,但要先确定你路由器使用的编码是不是就是 Latin-1 (ISO-8859-1),还有显示 SSID 的设备用的编码是不是 GBK (GB2312),简体中文的 Windows 系统应该用的就是 GBK 编码,但 iOS 等设备使用的编码就不是了,所以我估计这样的中文 SSID 在 iOS 下还会是乱码。

转换的方法就是获得你要输入中文的 GBK 编码值,然后将这编码值用 Latin-1 编码去解码,获得对应的字符串。
方法很简单,我是用 Python 来转换的,但我猜你应该不会 Python,我就顺手搜到一个在线转换字符串编码的网站:
http://www.string-functions.com/encodedecode.aspx
你只要输入你想要的中文, "Encode with:" 选 'gb2312',"Decode with:" 选 'iso-8859-1',然后转换就能得到对应的字符串了。
hzqim
2015-02-26 22:33:25 +08:00
@Sylv 谢谢指点!
原以为用 notepad++ 之类的软件可以转换。
先在openwrt试验一下。
再次谢谢。
hzqim
2015-02-26 23:02:26 +08:00
@Sylv openwrt 在 luci 界面提示“一些值无效,无法保存”
在 ssh 下修改,Ãâ·ÑµÄÊÇ×î¹óµÄ 粘贴进/etc/config/wireless 变成............,但在 luci 下可以看到Ãâ·ÑµÄÊÇ×î¹óµÄ
ssh 下强制保存,无线启动不了,残念!
Sylv
2015-02-27 03:27:05 +08:00
@hzqim 我搜了下,貌似 openwrt 是能支持中文 ssid 的,不用这样绕弯。
你试试 ssh 进去,在 /etc/config/wireless 里直接输入中文汉字的 ssid,然后将文件保存为 gb2312 编码。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/172573

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX