资源简介
QRCode二维码维码支持中文,网上流传很多版本都说支持中文二维码。看过测试都有问题,自己看了源码改了下。
原版本 中有 IsUnicode 方法判断是否为Unicode编码 但这个方法好像有问题 所以无法准确判断中文。可以通过改写这个来实现中文。
另外有两个方法 都可以解决中文问题
public virtual String decode(QRCodeImage qrCodeImage, Encoding encoding)
public virtual String decode(QRCodeImage qrCodeImage)
因为是虚方法可以重写这个方法就可以
所以 可以通过
改写IsUnicode 和 重写 这个两个虚方法来实现
///
/// 用于判断中文
///
///
///
public static bool IsUnicode(byte[] byteData)
{
// This is by Joson Jiang 用于判断中文
//因为ascii编码当中的最大为127,这样判断后,
//就能正确的判断是不是unicode,这样就能正确的解码中文了.
bool isUnicode = false;
try
{
foreach (byte value in byteData)
{
if (value > 128)
{
isUnicode = true;
break;
}
}
}
catch (Exception)
{
//其中的是原本的代码 无法正确判断 中文
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;
}
return isUnicode;//返回是不是Unicode编码
}
///
/// 重写直接返回 解决中文问题
///
public class QRCodeDecoders : QRCodeDecoder
{
QRCodeDecoder decoder = new QRCodeDecoder();
public override String decode(QRCodeImage qrCodeImage)
{
sbyte[] data = decoder.decodeBytes(qrCodeImage);
byte[] byteData = new byte[data.Length];
Buffer.BlockCopy(data, 0, byteData, 0, byteData.Length);
String decodedData;
return decodedData =
代码片段和文件信息
using System.Reflection;
using System.Runtime.CompilerServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
// TODO: Review the values of the assembly attributes
[assembly: Assemblytitle(“ThoughtWorks.QRCode.NET Component“)]
[assembly: AssemblyDescription(“A library for QRCode encoding and decoding“)]
[assembly: AssemblyCompany(““)]
[assembly: AssemblyProduct(““)]
[assembly: AssemblyCopyright(““)]
[assembly: AssemblyTrademark(““)]
[assembly: AssemblyCulture(““)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Revision
// Build Number
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the ‘*‘ as shown below:
[assembly: AssemblyVersion(“1.0.*“)]
//
// In order to sign your assembly you must specify a key to use. Refer to the
// Microsoft .NET framework documentation for more information on assembly signing.
//
// Use the attributes below to control which key is used for signing.
//
// Notes:
// (*) If no key is specified the assembly is not signed.
// (*) KeyName refers to a key that has been installed in the Crypto Service
// Provider (CSP) on your machine. KeyFile refers to a file which contains
// a key.
// (*) If the KeyFile and the KeyName values are both specified the
// following processing occurs:
// (1) If the KeyName can be found in the CSP that key is used.
// (2) If the KeyName does not exist and the KeyFile does exist the key
// in the KeyFile is installed into the CSP and used.
// (*) In order to create a KeyFile you can use the sn.exe (Strong Name) utility.
// When specifying the KeyFile the location of the KeyFile should be
// relative to the project output directory which is
// %Project Directory%\obj\. For example if your KeyFile is
// located in the project directory you would specify the AssemblyKeyFile
// attribute as [assembly: AssemblyKeyFile(“..\..\mykey.snk“)]
// (*) Delay Signing is an advanced option - see the Microsoft .NET framework
// documentation for more information on this.
//
[assembly: AssemblyConfiguration(““)]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile(““)]
[assembly: AssemblyKeyName(““)]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3348 2013-01-13 15:38 _UpgradeReport_Files\UpgradeReport.css
文件 12505 2010-05-04 01:19 _UpgradeReport_Files\UpgradeReport.xslt
文件 69 2013-01-13 15:38 _UpgradeReport_Files\UpgradeReport_Minus.gif
文件 71 2013-01-13 15:38 _UpgradeReport_Files\UpgradeReport_Plus.gif
文件 2549 2007-06-08 13:38 Backup\QRCodeLib\AssemblyInfo.cs
文件 882 2007-06-30 23:24 Backup\QRCodeLib\data\QRCodeBitmapImage.cs
文件 262 2007-06-30 23:21 Backup\QRCodeLib\data\QRCodeImage.cs
文件 14203 2007-07-30 10:43 Backup\QRCodeLib\data\QRCodeSymbol.cs
文件 4993 2007-07-30 10:43 Backup\QRCodeLib\ecc\BCH15_5.cs
文件 9927 2007-07-30 10:43 Backup\QRCodeLib\ecc\ReedSolomon.cs
文件 399 2007-07-04 22:38 Backup\QRCodeLib\exception\AlignmentPatternNotFoundException.cs
文件 690 2007-07-04 22:38 Backup\QRCodeLib\exception\DecodingFailedException.cs
文件 383 2007-07-04 22:38 Backup\QRCodeLib\exception\FinderPatternNotFoundException.cs
文件 385 2007-07-04 22:38 Backup\QRCodeLib\exception\InvalidDataBlockException.cs
文件 375 2007-07-04 22:38 Backup\QRCodeLib\exception\InvalidVersionException.cs
文件 390 2007-07-04 22:38 Backup\QRCodeLib\exception\InvalidVersionInfoException.cs
文件 381 2007-07-04 22:38 Backup\QRCodeLib\exception\SymbolNotFoundException.cs
文件 160 2007-07-04 22:38 Backup\QRCodeLib\exception\VersionInformationException.cs
文件 1935 2007-06-08 13:38 Backup\QRCodeLib\geom\Axis.cs
文件 3357 2007-06-08 13:38 Backup\QRCodeLib\geom\Line.cs
文件 1507 2007-06-08 13:38 Backup\QRCodeLib\geom\Point.cs
文件 4228 2007-06-08 13:38 Backup\QRCodeLib\geom\SamplingGrid.cs
文件 54356 2007-08-04 21:35 Backup\QRCodeLib\Properties\Resources.Designer.cs
文件 58871 2007-08-04 21:32 Backup\QRCodeLib\Properties\Resources.resx
文件 15507 2007-08-01 15:57 Backup\QRCodeLib\QRCodeDecoder.cs
文件 29736 2007-08-01 21:09 Backup\QRCodeLib\QRCodeEncoder.cs
文件 16634 2007-08-04 21:32 Backup\QRCodeLib\QRCodeLib.csproj
文件 8739 2007-07-30 10:43 Backup\QRCodeLib\reader\pattern\AlignmentPattern.cs
文件 21060 2007-07-30 10:43 Backup\QRCodeLib\reader\pattern\FinderPattern.cs
文件 2550 2007-06-08 13:38 Backup\QRCodeLib\reader\pattern\LogicalSeed.cs
............此处省略754个文件信息
相关资源
- DM二维码生成器85287
- C#利用Zxing.NET生成条形码和二维码并实
- .NET(c#)Web生成二维码
- C# 数据库连接MySQL、SQL server并读取数
- Halcon联合C#编写的检测二维码窗体程序
- C#联合halcon二维码读取.zip
- C#代码生成二维码
- C# 二维码名片
- ZPL 打印条码、二维码及小票中文/汉字
- c# 二维码名片源码及相应的qrcode.dl
- C#二维码生成器(含源码)
- C#窗体三种方法生成二维码并打印的小
- ThoughtWorks.QRCode.dll201455
- asp.net 扫描二维码(微信)
- C# 二维码生成 DLL 各个版本
- 基于html5、JS实现的二维码扫码
- c#二维码打印
- 生成和读取条形码二维码C#
- C# 生成二维码名片 实例源码174850
- C# 二维码生成图片源码
- c#Winform获取摄像头扫描各种码
- c#简易二维码制作工具
- C#根据字符串生成二维码并显示
- c# asp.net 二维码生成源码改良版
- c# 生成二维码214759
- C#利用ThoughtWorks.QRCode.dll创建和解析二
- C#水晶报表打印二维码
- c#二维码生成
- vs2008 c#.net web二维码生成系统
- C#生成和解析二维码及调用摄像头识别
评论
共有 条评论