.Net 生成二维码 名片实现
作者:admin 日期:2013-01-21
主要是用于公司的通讯录上,这样可以方便有装有二维码扫描软件的智能手机直接添加名片,以避免手工输入的麻烦.
实现步骤:
引用dll
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ThoughtWorks.QRCode.Codec.Util;
需要了解的知识:
vcard规范
vCard 规范容许公开交换个人数据交换 (Personal Data Interchange PDI) 信息,在传统纸质商业名片可找到这些信息。规范定义电子名片(或叫vCard)的格式。 vCard 规范可作为各种应用或系统之间的交换格式。定义的格式与传送的方法无关。传送交换可能是文件系统,点对点交换的公共电话网络,以有线网络或无线传送的方式。用户能在互联网上直接利用vCard。电子邮件能转发在vCard中人信息。网页上很多用户填写的表格可自动使用vCard。
百度百科:http://baike.baidu.com/view/495045.htm
代码实现核心部分
复制内容到剪贴板 程序代码
//生成二维码名片//
StringBuilder Vcard = new StringBuilder();
Vcard.Append("BEGIN:VCARD");
Vcard.Append("N:").Append("您的姓名").Append(";").Append(lblTrueName.Text).Append(";");
Vcard.Append("FN:").Append("您的姓名").Append(";");
Vcard.Append("ORG:").Append("公司名称").Append(";");
Vcard.Append("TEL;WORK;VOICE:").Append("手机号码").Append(";");
Vcard.Append("TEL;HOME;VOICE:").Append("分机号码").Append(";");
//Vcard.Append("LABEL;TYPE=WORK:").Append("公司地址").Append(";").Append("523860").Append("中国").Append(";");
//Vcard.Append("EMAIL:").Append(objUserBasic.CompanyEmail).Append(";");
Vcard.Append("END:VCARD");
//结束
this.imgMakeQR.ImageUrl = "chart.ashx?chl="+Server.HtmlEncode(Vcard.ToString())+"&size=4";
不支持中文的解决办法:
方法1:需要对所生成的内容作Server.HtmlEncode()处理
方法2:
因为ascii编码当中的最大为127,这样判断后,就能正确的判断是不是unicode,这样就能正确的解码中文了.其中注释掉的是原本的代码。
复制内容到剪贴板 程序代码
public static bool IsUnicode(byte[] byteData)
{
//string value1 = FromASCIIByteArray(byteData);
//string value2 = FromUnicodeByteArray(byteData);
//byte[] ascii = AsciiStringToByteArray(value1);
//byte[] unicode = UnicodeStringToByteArray(value2);
//if (ascii[0] != unicode[0])
// return true;
//return false;
bool isUnicode = false;
foreach (byte value in byteData)
{
if (value > 128)
{
isUnicode = true;
break;
}
}
return isUnicode;//返回是不是Unicode编码
}
参考样例
一点经验,与大家分享,欢迎指正!
[本日志由 admin 于 2013-01-21 05:44 PM 更新]
上一篇: Asp.Net 集成RTX(腾讯通)开发实践下一篇: 《不说,就真来不及了》读后感
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 生成二维码 二维码 二维码名片
相关日志:
评论: 3 | 引用: 0 | 查看次数: 10777
请问方法2的代码应该放到哪里?能给个完整的源码吗?多谢!
admin 于
回复源码就是上面的。放在你要生二维码的那个页面
发表评论
hhqqnu@163.com