要将中文信息生成为二维码,使用了有源码的QRCode,但它默认不支持中文,在网上找到的办法,一般都是这样的:
修改库QRCodeLib中的类QRCodeEncoder.cs
将
public virtual
Bitmap Encode(String content)里面的
return
Encode(content, Encoding.Unicode);修改为
return Encode(content, Encoding.GetEncoding(
"
gb2312
"
));
这样生成后,一部解码软件是可以解码的,但是像360的安全二维码就不行,我猜测它是使用了UTF-8来解码的。因为中文编码有UTF-8和gb2312两种,于是上面的代码改为
这样生成后,一部解码软件是可以解码的,但是像360的安全二维码就不行,我猜测它是使用了UTF-8来解码的。因为中文编码有UTF-8和gb2312两种,于是上面的代码改为
return Encode(content, Encoding.GetEncoding("UTF-8"));
这样就比较完美了,360安全二维码能够识别了,其它软件也能识别了。
其实google也有现成的可以用,只是怕实然有一天不开放了,不敢用,
地址: https://chart.googleapis.com/chart?cht=qr&chs=200x200&choe=UTF-8&chld=L|0&chl=%E8%BA%AB%E4%BB%BD%E8%AF%81%E5%8F%B7%EF%BC%9A41071119851778190%EF%BC%8C%E5%87%86%E9%A9%BE%E8%BD%A6%E5%9E%8B%EF%BC%9AC1%EF%BC%8C%E8%80%83%E8%AF%95%E6%97%A5%E6%9C%9F%EF%BC%9A2013-02-11
这样就比较完美了,360安全二维码能够识别了,其它软件也能识别了。
其实google也有现成的可以用,只是怕实然有一天不开放了,不敢用,
地址: https://chart.googleapis.com/chart?cht=qr&chs=200x200&choe=UTF-8&chld=L|0&chl=%E8%BA%AB%E4%BB%BD%E8%AF%81%E5%8F%B7%EF%BC%9A41071119851778190%EF%BC%8C%E5%87%86%E9%A9%BE%E8%BD%A6%E5%9E%8B%EF%BC%9AC1%EF%BC%8C%E8%80%83%E8%AF%95%E6%97%A5%E6%9C%9F%EF%BC%9A2013-02-11
我的代码下载地址:下载