网站建设资讯

NEWS

网站建设资讯

vb.net字符集,vb语言字符串

用esc指令esc * m n1 n2 [d]k 打印一张图片,[dk]这个数据该怎么获取?vb.net的

这个应该是打印机命令格式,不同的打印机命令格式不尽相同,你可以找这一款打印机的命令说明看一看,一般光盘里有带的,或者到官网上下也可以。下面一些你可以先看看:

创新互联建站-专业网站定制、快速模板网站建设、高性价比桐乡网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式桐乡网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖桐乡地区。费用合理售后完善,十年实体公司更值得信赖。

英文模式下的命令

代码 功能

CR 回车

ESC ! 设置打印方式

ESC % 选择或取消用户自定义字符集

ESC 定义用户自定义字符集

ESC * 设置位映射方式

ESC @ 初始化打印机

ESC ~ LED ON/OFF

ESC 返回行首

ESC 2 选择行间距为1/6英寸

ESC 3 设置行进为最小间距

ESC BEL 蜂鸣器ON/OFF

ESC C 设置单页长度

ESC c0 选择打印页

ESC c1 选择行间距

ESC c3 选择纸结束信号输出

ESC c4 选择打印纸及检测器(终止打印)

ESC c5 禁止/使能面板开关

ESC c6 禁止/使能ON-LINE开关

ESC d 打印及N行进纸

ESC D 设置TAB位置

ESC e 打印病退回N行

ESC f 设单页等待时间

ESC F 选择或取消单页退纸区

ESC i 全切割

ESC J 以最小间距进行打印和进纸

ESC K 以最小间距进行打印和退纸

ESC l 选择或取消倒过来的字符

ESC m 局部切割

ESC o 印章

ESC p 产生指定脉冲

ESC q 释放纸

ESC r 选择打印颜色

ESC R 选择国际字符子集

ESC SP 设置右边界

ESC t 选择字符码表

ESC U 选择或取消单向打印

ESC V 发送打印机状态

ESC z 设置或取消两页并行打印

FF 打印送出单页

HT 水平TAB

LF 换行

RS 流水TAB

中文模式下的命令

代码 功能

FS – n 设置中文字符下划线模式开关

FS ! n 选择中文字体

FS 选择中文字符模式

FS . 取消中文模式

EPSON打印控制指令集

打印命令  功能

格式:  ASCII: 以标准ASCII字符序列表示

十进制: 以十进制数字序列表示

 十六进制: 以十六进制数字序列表示

说明:该命令功能和使用说明。

HT   水平制表

格式:  ASCII: HT

十进制: 09

 十六进制: 09

说明:

打印位置进行到下一水平制表位置。

如果当前打印位置超过了最后一个水平制表位置,则HT命令不被执行。

水平制表位置由 ESC D命令设置。

LF  打印并换行

格式:  ASCII: LF

十进制: 10

 十六进制: 0A

说明:

打印存放在行编辑缓存中的一行数据并按当前设定的行距向前走纸一行。ESC2,ESC3指令可设定行距的长短。

如果行编辑缓存空,则只按当前设定的行距向前走纸一行。

CR  打印回车

格式:  ASCII: CR

十进制: 13

 十六进制: 0D

说明:

当打印在行编辑缓存中的一行数据之后,不进行走纸操作。

DLE EOT n  实时状态传送

格式:  ASCII: DLE EOT n

十进制: 16 04 n

 十六进制: 10 04

说明:

1 ≤ n ≤ 4

传送以实时的方式,n代表被选择的打印机状态,基于下列参数:

n = 1: 打印机状态

n = 2: 脱机状态

n = 3: 错误状态

n = 4: 纸检测器状态

返回的字节每位设置如下:

n = 1: 打印机状态

n = 2: 脱机状态

n = 3: 错误状态

n = 4: 纸检测器状态

DLE ENQ n  对打印机的实时请求

格式:  ASCII: DLE ENQ n

十进制: 16 05 n

 十六进制: 10 5

说明:

n = 0, n = 2

打印机对主机请求作出反应,n值定义如下:

n = 0: 恢复到联机状态

n = 2: 清除接收和打印缓冲区,并恢复错误.

ESC SP n  设置字符右间距

格式:  ASCII: ESC  SP n

十进制: 2732 n

 十六进制: 1B20 n

说明:

以半点为设定单位(1/144英寸),设置字符右边间距为n个半点距。

默认值n=0。

ESC ! n    设置字符打印方式

格式:  ASCII: ESC  ! n

十进制: 2733 n

 十六进制: 1B21 n

说明:

0≤n≤255

ESC ! n是综合性的字符打印方式设置命令,用于选择打印字符的大小和下划线。

打印参数n的每位定义为:

位 功能 值

0 1

0 字模选择 7×9 5×7

1 无定义

2 无定义

3 着重模式 取消 设定

4 倍 高 取消 设定

5 倍 宽 取消 设定

6 无定义

7 下划线 取消 设定

默认值n=0,

ESC % n  允许/禁止用户自定义字符

格式:  ASCII: ESC  %  n

十进制: 2737 n

 十六进制: 1B25 n

说明:

参数n为一个字节,只有最低位有效。

当n=<*******1>B时,选择用户自定义字符集;

当n=<*******0>B时,选择内部字符集。

0≤n≤255,默认值n=0。

ESC  设置用户自定义字符

格式: ASCII: ESC    y  n  m  x  d1  d2……db

十进制: 27  38  y  n  m  x  d1  d2……db

十六进制: 1B  26  y  n  m  x  d1  d2……db

说明:

该命令用于自定义字符。各参数为:

y:字符的纵向字节数。这里取 y=1,2。

n:自定义字符集的起始ASCII码,n≥32。

m:自定义字符集的终止ASCII码,m≤127。自定义字符个数为m-n+1,最多可定义96个字符。

当只有一个自定义字符时,取m=n。

a:自定义字符的水平方向的点数。

d1 d2……db:自定义字符的数据。每个字符 y×x个字节,m-n+1个自定义字符共有:

(y×x)×(m-n+1)个字节。

每个自定义字符数据的格式:

d1 d3 … d(y×x)×(m-n+1)-1

d2 d4 … d(y×x)×(m-n+1)

样例如下:

发送的命令如下:

ESC y c1 c2 X p1 p2 p3 d4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14

Code 1B 26 02 20 20 07 1F 80 20 00 44 00 80 00 44 00 20 00 1F 80

ESC *   设置图形点阵

格式:  ASCII: ESC  *  m  n1  n2  D1,D2 … Dk

   十进制: 27 42 m  n1  n2  D1,D2 … Dk

 十六进制: 1B 2A m  n1  n2  D1,D2 … Dk

说明:

该命令用来设置点阵图形模式(m)和横向图形点阵。

m = 0,1: 表示打印密度。

0≤n1≤255,0≤n2≤1,0≤Dk≤255,k= n1+ n2×256。

n1,n2为两位十六进制数,n1这低字节,n2这高字节,k= n1+ n2×256,表示该命令下载的要打印图形的横向点数,该值应小于打印机的最大行宽打印点数。如果下送的点图数据超出一行的最大行宽打印点数时,超出的部分被忽略。

m 垂直方向点数 点密度 最大点数 图形打印模式

0 8 单密度 210 相邻点打印

1 8 双密度 420 相邻点不打印

Dk 定义为:

ESC -n 设置/取消下划线模式

格式:  ASCII: ESC  -  n 

   十进制: 27 45 n 

 十六进制: 1B 2D n 

说明:

n = 0, 1, 48, 49

n = 0 or 48,取消下划线模式。

n = 1 or 49, 设置下划线模式。

ESC 2  设定1/6英寸换行量

格式:  ASCII: ESC  2

十进制: 2750

 十六进制: 1B32

说明:

此指令将打印机的换行量设定为1/6英寸。

ESC 3  n 设定 n/144英寸换行量

格式:  ASCII: ESC  3n

十进制: 2751  n

 十六进制: 1B33  n

说明:

此指令将打印机的换行量设定为 n/144英寸。

n=1 - 255。

ESC 〈 打印头归位

格式:  ASCII: ESC 〈

十进制: 2760

 十六进制: 1B3C

说明:

执行该指令后,打针头会回到原位(home的位置)。

ESC =n 设备设置/取消

格式:  ASCII: ESC  =  n 

   十进制: 27 61 n 

 十六进制: 1B 3D n 

说明:

1 ≤n ≤3

默认 n = 1

位 功能 值

0 1

0 打印机选择 取消 设定

1 顾显选择 取消 设定

2 无定义

3 无定义

4 无定义

5 无定义

6 无定义

7 无定义

ESC ?n 取消用户自定义字符

格式:  ASCII: ESC  ?  n 

   十进制: 27 63 n 

 十六进制: 1B 3F n 

说明:

32 ≤n ≤126

ESC @  初始化打印机

格式:  ASCII: ESC  @

十进制: 2764

 十六进制: 1B40

说明:

该命令初始化打印机:使打印机恢复到最初的联机状态,清除以前留下的程序。

ESC D NULL  消除所有的水平制表位置

格式:  ASCII: ESC  D  NULL

十进制: 27 68 0

 十六进制: 1B44 0

说明:

ESC D NUL命令消除所有的水平制表位置,之后再执行的HT命令将无效。

命令(ASCII) 十六进制 功能说明

HT 9 打印位置进行到下一水平制表位置

LF 0a 打印行缓冲器里的内容,并向前走纸一行

CR 0D 打印回车

ESC SP 1B 20 n 设置字符右边的字间距为n个半点距(1/140英寸)

DLE EOT n 10 04 实时状态传送

DLE ENQ n 10 5 对打印机的实时请求

ESC SP n 1B 20 n 设置字符右间距

ESC ! n 1B 21 n 设置字符打印方式

ESC % n 1B 25 n 允许/禁止用户自定义字符

ESC  1B 26 设置用户自定义字符

ESC * 1B 2A 设置图形点阵

ESC - n 1B 2D n 设置/取消下划线模式

ESC 2 1B 32 设定1/6英寸换行量

ESC 3  n 1B 33 n 设定 n/144英寸换行量

ESC 〈 1B 3C 打印头归位

ESC = n 1B 3D n 设备设置/取消

ESC ? n 1B 3F n 取消用户自定义字符

ESC @ 1B 40 初始化打印机

ESC D NULL 1B 44 0 消除所有的水平制表位置

ESC E n 1B 45 0 设置/取消着重模式

ESC G n 1B 47 0 设置/取消重叠模式

ESC J n 1B 4A n 执行n/144英寸走纸

ESC K n 1B 4B n 打印并反向走纸

ESC R n 1B 52 n 选择国际字符集

ESC U n 1B 55 n 设置/取消单向打印

ESC a n 1B 61 n 选择对齐模式

ESC c 3 n 1B 63 33 n 输出纸尽传感器

ESC c 4  n 1B 63 34 n 设定缺纸时停止打印

ESC c 5  n 1B 63 35 n 允许/禁止走纸按键

ESC d n 1B 64 n 打印并进纸n字符行

ESC e n 1B 65 n 打印并反向进纸n字符行

ESC p 1B 70 产生钱箱驱动脉冲

ESC r n 1B 72 n 选择打印颜色

ESC t n 1B 73 n 选择字符集

ESC { n 1B 7B n 设置/取消倒向打印模式

FS  ! 1B 75 n 汉字综合选择

FS  & 1C 26 进入汉字打印方式

FS ~ S 1C 7E 53 n 选择汉字打印速度

FS · 1C 2E 退出汉字打印方式

FS 2 1C 32 用户自定义汉字

FS ? c1 c2 1C 3F c1 c2 取消用户自定义汉字

FS C n 1C 43 n 设定日文汉字编码系统

FS S n1 n2 1C 53 n1 n2 设定全角汉字字间距

FS W n 1C 57 n 设定/取消四倍角汉字模式

GS ( F pL pH a m nL nH 1D 28 设置黑标定位偏移量

GS  In 1D  49 n 传送打印机ID

GS V 1D 56 m 走纸到切纸位置

1D 56 m n

GS  a  n 1D  61 n 设定/取消自动返回状态

GS  r  n 1D  72 n 状态传送

GS  z 1D  7A 设置联机恢复等待时间

vb.net 如何将编码GB2312转成UTF8

Imports System.Text

Public Function StringAsUtf8Bytes(ByVal strData As String) As Byte()

Dim bytes() As Byte

bytes = Encoding.UTF8.GetBytes(strData)

Return bytes

End Function

说明:strData参数是GB2312字符串,函数返回UTF8字节数组

VB.NET UNICODE码 显示

Public Class Form1

Dim b() As Byte

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

b = System.Text.Encoding.Default.GetBytes(TextBox1.Text)

For i = 0 To UBound(b)

TextBox2.AppendText(i.ToString  " ")

Next

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

TextBox1.Text = System.Text.Encoding.Default.GetString(b)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

TextBox1.Text = "Google free online translation service instantly translates text and web pages。 该翻译器支持: 中文(简体), 中文(繁体), shqip, 日本语, русский, langue française ..."

End Sub

End ClassVB.Net中用String类型表示字符串,内部采用Unicode编码。当需要在网络或串口中收发字符串时,就需要在String和Byte数组之间进行转换,这项功能可以通过System.Text.Encoding类实现。

Private zeroChars() As Char = {ChrW(0)}

Dim descBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(mDescription)

Dim description As String = System.Text.Encoding.Unicode.GetString(rBuffer, offset, length).TrimEnd(zeroChars)

说明:C语言中用'\0'表示字符串结束,而String类型中0是有效字符,显示时是空白字符,会占用显示宽度,可以用TrimEnd方法将字符串末尾的零字符去掉。

主要叙说一下StrConv 函数conversion参数最后两个值的含义和用途,并举例说明。

1、语法

StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:

部分 说明

string 必要参数。要转换的字符串表达式。

conversion 必要参数。Integer。其值的和决定转换的类型。

LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)

设置值

conversion 参数的设置值为:

常数 值 说明

vbUpperCase 1 将字符串文字转成大写。

vbLowerCase 2 将字符串文字转成小写。

vbProperCase 3 将字符串中每个字的开头字母转成大写。

vbWide* 4* 将字符串中单字节字符转成双字节字符。

vbNarrow* 8* 将字符串中双字节字符转成单字节字符。

vbKatakana** 16** 将字符串中平假名字符转成片假名字符。

vbHiragana** 32** 将字符串中片假名字符转成平假名字符。

vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。

vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。

*应用到远东国别。

**仅应用到日本。

说明:前面3个参数比较简单,后面4个我们用不上,就不说了,主要说说后面两个。

2、ANSI 格式

语法中说的缺省码页就是ANSI模式,英文环境下 的ANSI 格式其实也就是ASCII码,其它环境就不一样了,比如中文环境,就是ASCII,一个字节表示一个字符,GB2312,2个字节表示一个汉字,所以中文环境下的ANSI格式就是ASCII码+GB2312,早期的DOS系统中纯文本就是这种格式,这种格式下,通过最高位来判断是中文字符(最高位是1)还是ASCII字符(最高位是0)。中文环境下保存文本文件时一般都采用ANSI格式,不过也有其他格式,比如UTF-8。

3、Unicode编码

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode用两个字节表示一个字符,涵盖了世界上所有字符,和以前的字符集都不兼容,VB内部字符串就是采用Unicode编码,所以当我们打开一个文本文件读入数据的时候,其内存中的内容和文本文件的内容是不一样的,经过了转换,除非你采用二进制方式读入。

4、vbUnicode和vbFromUnicode含义

有了上面叙说,这两个参数的含义就好理解了,就是Unicode编码和ANSI编码的互换,例如:

      textline= StrConv(plaintext,vbUnicode)  

这儿textline是以字符串变量,plaintext是以字节变量保存着ANSI模式的字符内容,例如,“2”这个字符,一个字节,值是50,16进制是32,“皖”这个汉字,两个字节,值是205和238,同样是这两个字符,作为字符串在内存中都是两个字节,例如,“2”这个字符在内存中16进制值是0032。当VB打开一个文件读取文本内容是,实际上自动进行了上述转换。

     plaintext = StrConv(textline, vbFromUnicode)

这儿进行相反的转换,就是将Unicode字符串转换成ANSI模式,转换结果必须以字节方式保存。

5、vbUnicode和vbFromUnicode用途

由于字符在内存中的内容和文件中的内容不一致,所以必须要用到这种转换,特别是系统间进行数据交换、数据加密和解密,如果不做转换可能导致得不到正确的结果。

比如,我们对一个文本文件进行加密,这个文件是ANSI格式存储的,当从文件内容读入一行到内存的时候,自动将内容转换成了Unicode格式,如果这时候对其做加密运算,其结果和文件中字符串加密结果是不一样的,这样的结果如果让别人解密将无法得到正确的结果。如果对读入内存的内容先做个转换(textline是读入内容):

     plaintext = StrConv(textline, vbFromUnicode)

再对plaintext做加密,其结果就一样了。

举例(按行做加密和解密运算,算法是AES+Base64):

[vb] view plain copy

Status = "Encrypting File"

Open FileName For Input As #1      ' 打开输入文件。

Open FileName2 For Output As #2     ' 打开输出文件。

Do While Not EOF(1)

Line Input #1, TextLine

plaintext = StrConv(TextLine, vbFromUnicode)

Status = "Encrypting Data"

m_Rijndael.SetCipherKey pass, KeyBits

m_Rijndael.ArrayEncrypt plaintext, ciphertext, 0

Status = "Converting Text to Base64"

TextLine = Base64Encode(ciphertext)

Status = ""

Print #2, TextLine    ' 将字符串写入文件。

Loop

Close

[vb] view plain copy

Status = "Decrypting File"

Open FileName For Input As #1      ' 打开输入文件。

Open FileName2 For Output As #2    ' 打开输出文件。

Do While Not EOF(1)

Line Input #1, TextLine

Status = "Converting Base64 to Text"

ciphertext = Base64Decode(TextLine)

Status = "Decrypting Data"

m_Rijndael.SetCipherKey pass, KeyBits

If m_Rijndael.ArrayDecrypt(plaintext, ciphertext, 0)  0 Then

Status = ""

Exit Sub

End If

TextLine = StrConv(plaintext, vbUnicode)

For i = 0 To UBound(plaintext)

Debug.Print plaintext(i)

Next i

k = InStr(1, TextLine, Chr(0), vbBinaryCompare)

If k  0 Then TextLine = Left(TextLine, k - 1)    '截掉加密时补的0

MsgBox TextLine  "end"

Status = ""

Print #2, TextLine    ' 将字符串写入文件。

Loop

Close


当前文章:vb.net字符集,vb语言字符串
本文链接:http://njwzjz.com/article/hcscep.html