12 条评论 html
C# Qrcode是一个开源的二维码生成类库,项目地址是:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Libraryweb
今天手头一个项目须要添加动态生成二维码的功能,因此把这个类库稍微研究了一下,遇到了一个问题。在我从新编译QRCodeLib这个类库的时候报错!post
报错信息为:编码
错误 7 “ThoughtWorks.QRCode.Properties.Resources”并不包含“GetResource”的定义 D:\QRCode\QRCodeLib\QRCodeEncoder.cs 735 72 QRCodeLib spa
查看相关代码,是一个动态拼接文件名称,动态读取相关“配置文件”的一个功能,代码截图以下:调试
只要把这三个出错的地方改为:code
MemoryStream memoryStream = new MemoryStream((byte[])Resources.ResourceManager.GetObject(fileName));htm
就能够了。blog
另外,个人项目是web的,发现我下载的Qrcode项目文件的QRCodeWebApp里面并无写相关功能!其实很简单,直接拿QRCodeSampleApp里面的关键核心代码改一下就能够了,上个截图吧!get
上面忽略了一个问题,QRCode建立出来的二维码存在编码问题,也就是中文乱码!一开始还没注意到,最后阶段才发现,也怪本身粗枝大叶。
其实也很简单,仍是须要修改QRCodeLib里面的一点点代码。
1.修改 QRCodeEncoder.cs 跟 QRCodeDecoder.cs 把Encoding.Unicode 替换成 Encoding.UTF8
2.util目录下的QRCodeUtility.cs中的UnicodeEncoding encoding = new UnicodeEncoding();替换成UTF8Encoding encoding = new UTF8Encoding();
此次再调试出来的二维码中文就可以识别出来了!
下面附上本身的修改版,这里下载/upfiles/self/sean-qrcode.rar
修改的内容是编码所有替换成UTF8,
dlsaint 的问题解决截图: