博客 (646)

Code 128 条形码可以表示全部 128 个 ASCII 码字符(数字、大小写字母、符号和控制符)。

Code 128 有三个子集:Code 128A、Code 128B 和 Code 128C。

Code 128A 用来编码数字、大写字母、控制符、部分符号;

Code 128B 用来编码数字、大写字母、小写字母、符号;

Code 128C 用来编码 2 位数字 [00,99]。


  • 码条大小有 4 种,按照宽度,我们用 1、2、3、4 来表示。

  • 一个完整的 Code 128 条码是由:起始符、字符串、检验位、终止符组成的。

  • 每个字符由 3 个条、3 个空、11 个单元构成,字符串可变长。

  • 黑色线条用 B(Bar)表示,白色空位用 S(Space)表示,那么一个字符是由 BSBSBS 组成的。

  • 起始符有三种,“CODE-A”、“CODE-B”和“CODE-C”。起始符的类型决定了后面字符的构成。

CODE 128构成

  • 当采用码来设置字符时(CODE-A、CODE-B 和 CODE-C),起始符为 CODE-A 的条码在条码的处理中可以变为采用 CODE-B 或 CODE-C 栏的字符。

  • 当采用“SHIFT”时,只有紧靠 SHIFT 的一个字符可以在下一栏被变更(A 到 B,B 到 C,C 到 A)。(和电脑键盘上的 SHIFT 键操作类似)


校验字符通过 MOD103 算法,下面举例说明:

例 1:xoyozo.net
信息:StartB x o y o z o . n e t
值:104 88 79 89 79 90 79 14 78 69 84
位置:- 1 2 3 4 5 6 7 8 9 10
计算:104 + 88 * 1+ 79 * 2 + 89 * 3 + 79 * 4 +90 * 5 + 79 * 6 + 14 * 7 + 78 * 8 + 69 * 9 + 84 * 10 = 4040
取模:4040 % 103 = 23
完整的条形码信息: (Start B)xoyozo.net(7)(STOP)

例 2:C08244
信息:StartB C 0 CodeC 82 44
值:104 35 16 99 82 44
位置:- 1 2 3 4 5 6
计算:104 + 35 * 1+ 16 * 2 + 99 * 3 + 82 * 4 +44 * 5 = 1016
取模:1016 % 103 = 89
完整的条形码信息: (Start B)C0(CodeC)8244(y)(STOP)


在线示例:https://xoyozo.net/Tools/Code128


附 Code 128 编码表:

ValueCode ACode BCode CPatternASCII Code
BSBSBS
0SPSP00212222SP (ASCII 32)
1!!01222122! (ASCII 33)
2""02222221" (ASCII 34)
3##03121223# (ASCII 35)
4$$04121322$ (ASCII 36)
5%%05131222% (ASCII 37)
6&&06122213& (ASCII 38)
7''07122312' (ASCII 39)
8((08132212( (ASCII 40)
9))09221213) (ASCII 41)
10**10221312* (ASCII 42)
11++11231212+ (ASCII 43)
12,,12112232, (ASCII 44)
13--13122132- (ASCII 45)
14..14122231. (ASCII 46)
15//15113222/ (ASCII 47)
1600161231220 (ASCII 48)
1711171232211(ASCII 49)
1822182232112 (ASCII 50)
1933192211323 (ASCII 51)
2044202212314 (ASCII 52)
2155212132125 (ASCII 53)
2266222231126 (ASCII 54)
2377233121317 (ASCII 55)
2488243112228 (ASCII 56)
2599253211229 (ASCII 57)
26::26321221: (ASCII 58)
27;;27312212; (ASCII 59)
28<<28322112< (ASCII 60)
29==29322211= (ASCII 61)
30>>30212123> (ASCII 62)
31??31212321? (ASCII 63)
32@@32232121@ (ASCII 64)
33AA33111323A (ASCII 65)
34BB34131123B (ASCII 66)
35CC35131321C (ASCII 67)
36DD36112313D (ASCII 68)
37EE37132113E (ASCII 69)
38FF38132311F (ASCII 70)
39GG39211313G (ASCII 71)
40HH40231113H (ASCII 72)
41II41231311I (ASCII 73)
42JJ42112133J (ASCII 74)
43KK43112331K (ASCII 75)
44LL44132131L (ASCII 76)
45MM45113123M (ASCII 77)
46NN46113321N (ASCII 78)
47OO47133121O (ASCII 79)
48PP48313121P (ASCII 80)
49QQ49211331Q (ASCII 81)
50RR50231131R (ASCII 82)
51SS51213113S (ASCII 83)
52TT52213311T (ASCII 84)
53UU53213131U (ASCII 85)
54VV54311123V (ASCII 86)
55WW55311321W (ASCII 87)
56XX56331121X (ASCII 88)
57YY57312113Y (ASCII 89)
58ZZ58312311Z (ASCII 90)
59[[59332111[ (ASCII 91)
60\\60314111\ (ASCII 92)
61]]61221411] (ASCII 93)
62^^62431111^ (ASCII 94)
63__63111224_ (ASCII 95)
64NUL`64111422` (ASCII 96)
65SOHa65121124a (ASCII 97)
66STXb66121421b (ASCII 98)
67ETXc67141122c (ASCII 99)
68EOTd68141221d (ASCII 100)
69ENQe69112214e (ASCII 101)
70ACKf70112412f (ASCII 102)
71BELg71122114g (ASCII 103)
72BSh72122411h (ASCII 104)
73HTi73142112i (ASCII 105)
74LFj74142211j (ASCII 106)
75VTk75241211k (ASCII 107)
76FFl76221114l (ASCII 108)
77CRm77413111m (ASCII 109)
78SOn78241112n (ASCII 110)
79SIo79134111o (ASCII 111)
80DLEp80111242p (ASCII 112)
81DC1q81121142q (ASCII 113)
82DC2r82121241r (ASCII 114)
83DC3s83114212s (ASCII 115)
84DC4t84124112t (ASCII 116)
85NAKu85124211u (ASCII 117)
86SYNv86411212v (ASCII 118)
87ETBw87421112w (ASCII 119)
88CANx88421211x (ASCII 120)
89EMy89212141y (ASCII 121)
90SUBz90214121z (ASCII 122)
91ESC{91412121{ (ASCII 123)
92FS|92111143| (ASCII 124)
93GS}93111341} (ASCII 125)
94RS~94131141~ (ASCII 126)
95 (Hex 7F)USDEL95114113DEL (ASCII 127)
96 (Hex 80)FNC 3FNC 396114311Ç (ASCII 128)
97 (Hex 81)FNC 2FNC 297411113ü (ASCII 129)
98 (Hex 82)SHIFTSHIFT98411311é (ASCII 130)
99 (Hex 83)CODE CCODE C99113141â (ASCII 131)
100 (Hex 84)CODE BFNC 4CODE B114131ä (ASCII 132)
101 (Hex 85)FNC 4CODE ACODE A311141à (ASCII 133)
102 (Hex 86)FNC 1FNC 1FNC 1411131å (ASCII 134)
103 (Hex 87)START (Code A)211412‡ (ASCII 135)
104 (Hex 88)START (Code B)211214ˆ (ASCII 136)
105 (Hex 89)START (Code C)211232‰ (ASCII 137)
106 (Hex 6A)STOP (All Codes)2331112Š (ASCII 138)
xoyozo 7 年前
14,760

* 仅列出部分数据表及字段


mag_ads 广告

类型注释
id
int
titlevarchar标题
picvarchar图片
begin_timeint开始时间
end_timeint结束时间
linkvarchar链接
……



mag_circle 圈子(相当于 PC 版的版块)

类型注释
id
int
namevarchar名称
……


mag_common_applaud_(n) 点赞详情表(分表)n 与 content_id 末位一致

类型注释
id
int
typevarchar 类型(主题/回复/打卡等)
content_idint 内容 id,末位与表名后缀一致
user_idint 用户 id
statusint1:点赞;0:取消点赞


mag_common_attachment_(n) 附件详情表(分表)n 与 aid 末位一致

类型注释
aid
int附件ID(末位与表名后缀一致)
……


mag_common_attachment_index 附件索引表

类型注释
idint附件ID
user_idint用户ID
table_idint分表标志
……



mag_common_comment_index 评论索引表(相当于 PC 版的回复表)

类型注释
idint附件ID
content_idint文章ID(mag_show_content)
user_idint用户ID
contentvarchar评论内容
……



mag_common_content_log 对圈子内容的操作日志(点赞、评论等)

类型注释
idint
typevarchar用户ID
type_valueint内容ID
user_idint用户ID
create_timeint操作时间
……


mag_show_content 圈子内容(相当于 PC 版的主题表)

类型注释
idint
user_idint用户ID
contentvarchar内容
picsvarchar以半角逗号分隔的图片(附件)id
……



mag_user 用户表

类型注释
user_idint用户ID
namevarchar用户名/昵称
headvarchar头像
……



xoyozo 7 年前
5,111

I`L8{$7ET7)3BUEREPIWIKB.png

ASP.NET MVC 项目发布到 IIS 上,出现服务器错误“403 - 禁止访问:访问被拒绝”,排除权限设置问题后,原因在于 MVC 的 URL 通常没有扩展名,IIS 并未将其交由 ASP.NET 托管处理。

经过各种找资料,各种尝试后,最终确定:项目本身没有问题,本地运行正常,发布到另一台服务器上正常。

删除服务器 IIS 上的该网站和应用程序池,重新创建网站,恢复正常。原因未知。

xoyozo 7 年前
8,579


官网示例国内示例
Metronic收费最新
Unify收费

最新

v2.6.3

初码 v2.6.2(图片已换成尺寸) 文档

本站 v2.6.3

Angulr收费Angular
HTML
本站 Angular v2.2.0
本站 HTML v2.2.0
AdminLTE免费开源最新本站 v2.4.2
Color Admin收费最新

初码 v4.3.0:后台 后台文档 博客 电商 论坛 单页 前台文档

本站 v1.8

更多 ……   

初码 - 博客园     初码静态模板


浏览示例前,将以下域名的重定向加入到 hosts 中可以加快页面的打开速度:

127.0.0.1	fonts.googleapis.com
127.0.0.1	ajax.googleapis.com
127.0.0.1	player.vimeo.com
127.0.0.1	www.vimeo.com


xoyozo 8 年前
5,942

先保存一次

Ctrl + A 全选

Ctrl + U 取消组合对象

菜单 - 编辑 - 全选 - 文本

Ctrl + Q 转换为曲线

菜单 - 文本 - 文本统计信息

看到 0 就成功了

记得“另存为”,千万不要直接“保存”,否则无法再次编辑。

转自 百度经验 7 年前
5,560

在 Global.asax 的 Application_Start() 方法中添加以下代码,作用是在应用程序启动时预先访问一遍所有动态页面,办法虽土,但很有效。


本代码适合 Web Forms 项目,不适合 MVC 项目;修改代码中的 domain 值为真实的网站域名


代码整理中……


在 IIS 中设置应用程序池最长时效或永不过期,则效果更佳。

在应用程序池中选中网站对应的应用程序池,在右侧“操作”窗口中选择“正在回收...”

取消“固定间隔”框中的所有选项,确定。

未命名-1.png

实践证明,近 200 个动态页面一次性访问需要耗时近 10 分钟,发布后 10 分钟内无法正常浏览网站是同样是无法忍受的。因此更改方案为:

做一个 Winform 应用程序来定时访问这些页面,30 秒一个,一个半小时能完成一个循环,对正常浏览的影响非常小。

xoyozo 7 年前
3,773

在 MySQL 中,int 的取值范围是 [-2147483648, 2147483647],占用 4 个字节。

int(M) 中 M 的默认值为 11,该值不影响取值范围和占用字节,仅表示最大显示宽度


以某 int 字段存储的记录值为 2147483647 为例:

类型为 int(1) 时,SELECT 结果为 214
类型为 int(2) 时,SELECT 结果为 2147
……
类型为 int(7) 时,SELECT 结果为 214748364
类型为 int(8) ~ int(11) 时,SELECT 结果为 2147483647


测试结果跟网上的说法不同


如果添加了 zerofill 属性,当然是填充零的效果,仍以上述值为例:

类型为 int(1) 时,SELECT 结果为 214
类型为 int(2) 时,SELECT 结果为 2147
……
类型为 int(7) 时,SELECT 结果为 214748364
类型为 int(8) ~ int(10) 时,SELECT 结果为 2147483647
类型为 int(11) 时,SELECT 结果为 02147483647


结论,既然 M 值不影响取值范围和占用字节,那么何必去改它呢。除非有特殊业务需求,否则很容易引起逻辑混乱,特别是当你误认为它是用来限定取值范围或节省存储空间的时候。

xoyozo 7 年前
5,082
发布选项 \ 项目类型Web 窗体网站

Web 应用程序

(Web 窗体)

Web 应用程序

(MVC)

ASP.NET Core 

Web 应用程序

在发布期间预编译

Precompile during publishing

若勾选,将 .cs 文件编译为 .dll
无论是否勾选,都将 .cs 文件编译为 .dll

允许更新预编译站点

Allow precompiled site to be updatable

若不允许,则会将 .aspx 等页面也一同编译,并以内容“这是预编译工具生成的标记文件,不应删除!”代替

未进行完整的测试和分析,总结有误请指正。

xoyozo 7 年前
5,784

EF 提供一个查询 SQL 日志的属性:

DbContext.Database.Log

该属性是一个委托。

最简单的用法是直接输出到控制台:

DbContext.Database.Log = Console.WriteLine;

WebFrom 中可以输出到页面:

DbContext.Database.Log = Response.Write;

该委托可以带一个参数,利用它可以输出简单格式化的日志信息:

DbContext.Database.Log = (sql) =>
{
    Console.WriteLine("查询开始");
    Console.WriteLine(sql);
    Console.WriteLine("查询结束");
};

上面是直接输出到控制台或页面,当然也可以保存到变量:

string s = "";
DbContext.Database.Log = (sql) =>
{
    s += sql;
};

当然还有更强大更广泛的使用方式,有兴趣可以参阅 Jeffcky 的文章

xoyozo 7 年前
7,909

函数功能:添加/修改/删除/获取 URL 中的参数(锚点敏感)

/// <summary>
/// 设置 URL 参数(设 value 为 undefined 或 null 删除该参数)
/// <param name="url">URL</param>
/// <param name="key">参数名</param>
/// <param name="value">参数值</param>
/// </summary>
function fn_set_url_param(url, key, value) {
    // 第一步:分离锚点
    var anchor = "";
    var anchor_index = url.indexOf("#");

    if (anchor_index >= 0) {
        anchor = url.substr(anchor_index);
        url = url.substr(0, anchor_index);
    }

    // 第二步:删除参数
    key = encodeURIComponent(key);
    var patt;

    // &key=value
    patt = new RegExp("\\&" + key + "=[^&]*", "gi");
    url = url.replace(patt, "");

    // ?key=value&okey=value  -> ?okey=value
    patt = new RegExp("\\?" + key + "=[^&]*\\&", "gi");
    url = url.replace(patt, "?");

    // ?key=value
    patt = new RegExp("\\?" + key + "=[^&]*$", "gi");
    url = url.replace(patt, "");

    // 第三步:追加参数
    if (value != undefined && value != null) {
        value = encodeURIComponent(value);
        url += (url.indexOf("?") >= 0 ? "&" : "?") + key + "=" + value;
    }

    // 第四步:连接锚点
    url += anchor;

    return url;
}

/// <summary>
/// 获取 URL 参数(无此参数返回 null,多次匹配使用“,”连接)
/// <param name="url">URL</param>
/// <param name="key">参数名</param>
/// </summary>
function fn_get_url_param(url, key) {
    key = encodeURIComponent(key);
    var patt = new RegExp("[?&]" + key + "=([^&#]*)", "gi");

    var values = [];

    while ((result = patt.exec(url)) != null) {
        values.push(decodeURIComponent(result[1]));
    }

    if (values.length > 0) {
        return values.join(",");
    } else {
        return null;
    }
}


调用示例:

var url = window.location.href;

// 设置参数
url = fn_set_url_param(url, 'a', 123);

// 获取参数
console.log(fn_get_url_param, url, 'a');


压缩版:

function fn_set_url_param(b,c,e){var a="";var f=b.indexOf("#");if(f>=0){a=b.substr(f);b=b.substr(0,f)}c=encodeURIComponent(c);var d;d=new RegExp("\\&"+c+"=[^&]*","gi");b=b.replace(d,"");d=new RegExp("\\?"+c+"=[^&]*\\&","gi");b=b.replace(d,"?");d=new RegExp("\\?"+c+"=[^&]*$","gi");b=b.replace(d,"");if(e!=undefined&&e!=null){e=encodeURIComponent(e);b+=(b.indexOf("?")>=0?"&":"?")+c+"="+e}b+=a;return b}
function fn_get_url_param(b,c){c=encodeURIComponent(c);var d=new RegExp("[?&]"+c+"=([^&#]*)","gi");var a=[];while((result=d.exec(b))!=null){a.push(decodeURIComponent(result[1]))}if(a.length>0){return a.join(",")}else{return null}};


xoyozo 7 年前
3,741