Unicode vs Ansi

最近的这个项目需要在VB中把中文字符串加密解密,有时间总出现乱码,百度了好长时间,原来是出在编码机制上,没有转换.这编文章转自网上,放到这里以备后用.
Unicode vs Ansi
*******************************************************************************

Visual Basic 32-bit 版本的字串处理采用 Unicode,也就是说字串在 VB 内部是以
Unicode 的格式来存放。

何谓 Unicode?简单的说,就是每一个字元都是以 2-byte 的型式表示,而每个「实
体字元」就是一个「字元」。因此,

Len(“大家好”)
Len(“abc”)

所传回的值都是 3,因为「大」和「a」都是一个字元。

但是这对一些中文字串处理,例如纯文字的资料档,却是一个大灾难,因为你必须以
byte 来定位每个字元,可是 Unicode 却把一切的处理全搞砸了。例如:

Len(“Good Morning”) 传回 12,而
Len(“今天天气很好”) 传回 6

对初学者而言,好不容易能使用 VB 来写程式已经是件了不起的事了,却马上在中文
处理上挨了一记闷棍,所受到的打击实在不小。但是不要怕,事实上只要再多了解一
些指令,就可以把中文处理的问题解决了。

是什麽指令呢?最重要的莫过於 StrConv 了。StrConv 函式的语法为:

StrConv(待转换字串, 转换格式)

其中转换格式在这里用到的是:

vbUnicode 将 Ansi 字串转换为 Unicode
vbFromUnicode 将 Unicode 字串转换为 Ansi

将字串转成 Ansi 之後,所有的字串处理指令都要加个 B,例如:LeftB, RightB,
MidB, ChrB, InstrB, LenB, InputB 等。例用这些指令来处理就行了。

当你处理完毕之後,你可以再将它再转回 Unicode,这样就可以使用一般的字串处理
指令了。

这样讲看得懂吗?如果还是不了解,看看下面的实例说明:

[●] 简易使用范例

看看下面的基本范例您应该就会对 VB 的字串处理方式有些概念。

Private Sub Command1_Click ()
Dim sUnicode As String
Dim sAnsi As String

' Unicode 运算
sUnicode = “王小明,A123456789,651023,台北市中山路100号,(02)2345678″
Debug.Print Len(sUnicode) ' 传回 44
Debug.Print Mid$(sUnicode, 5, 10) ' 传回 A123456789
Debug.Print Instr(sUnicode, “台北市”) ' 传回 23

' 将 Unicode 字串转成 Ansi
sAnsi = StrConv(sUnicode, vbFromUnicode)
' Ansi 运算
Debug.Print LenB(sAnsi) ' 传回 54
Debug.Print MidB$(sAnsi, 8, 10) ' 传回 ?????,因为忘了转回 Unicode
Debug.Print StrConv(MidB$(sAnsi, 8, 10), vbUnicode) ' 传回 A123456789,请注意转回 Unicode 的动作一定要做
Debug.Print InStrB(sAnsi, StrConv(“台北市”, vbFromUnicode)) ' 传回 23, 不要忘了要把”台北市”也转成 Ansi,否则会找不到
End Sub

======想买个音箱!!!!!!!!!!!!!!!!!

我是个音乐迷,特别喜欢音乐,特别喜欢纯音乐,雅尔的,雅尼的,神秘园,恩雅的等等,为了能更好的享受这些音乐,更好的发展的我爱好,哈哈,我准备买个音箱,再说了,前些天买了电脑了,怎么地也得配个音箱啊.
兜里的银两不多,那就只能买个便宜的啊,昨天大润发送的海报,上面有一款漫步者R201T-III的,搞特价128,我看挺值,从网上一查,大都在140-160之间,行,就买它了.
唉,终于要有音箱了,我那机器里的好音乐可以大放光芒了.
HOHO [wink]

N天过后……..

[lol] 音箱买回来了,目前正处于磨合期,但是效果已经很好了.

N天过后……..

[music] 经过这些天的磨合,现在音箱的效果已经完全的显现出来了,高音,低音表现都很出色!我满意!

一点一滴,关于网络办公自动化/OA系统

这几天没怎么写东西,是因为忙着做OA系统,每天晚上都弄到12点才睡,现在都好困啊,值得欣慰的是马上要做完了啊.终于看到希望了,这套系统做的时候可够长的了.
功能方面也挺全面的:
1,新闻,政策法规,通知发布
2,工作计划,日程安排,项目列表
3,内部邮件,在线即时聊天,用户留言,员工论坛,在线会议
4,通讯录,客户群组
5,资料档案管理,公司车辆管理,资源管理
6,公文流转,工作流发布
7,部门管理,用户组管理,
8,个人信息管理-基本信息,详细信息,登录信息
9,系统权限管理,分模块权限管理,系统基本信息管理
10,办公助手-各地区邮编区号查询,航班信息查询
……

[yes] [yes]

Flash参数和属性值详解

=====================================
参数和属性

下列标记属性和参数描述了由“发布”命令创建的 HTML 代码。在编写自己的用于显示 Flash 内容的 HTML 时,可以参考此列表。除非特别说明,否则所有条目都同时适用于 object 标记和 embed 标记。可选条目也在此列出。Internet Explorer 可以识别用于 object 标记的参数,而 Netscape 则可以识别用于 embed 标记的参数。属性既可用于 object 标记,也可用于 embed 标记。当自定义模板时,可以用此处列出的模板变量替代相应的值。请参阅自定义 HTML 发布模板。

注意:此部分中列出的属性和参数特意以小写字母显示,以符合 XHTML 标准。

devicefont 属性/参数

值: true | false
模板变量:$DE
说明:
(可选)对于未选定“设备字体”选项的静态文本对象,指定是否仍使用设备字体进行绘制(如果操作系统提供了所需字体)。

src 属性

值: movieName.swf
模板变量:$MO
说明 : 指定要加载的 SWF 文件的名称。仅适用于 embed。

movie 参数

值: movieName.swf
模板变量:$MO
说明: 指定要加载的 SWF 文件的名称。仅适用于 object。

classid 属性

值: clsid:D27cdb6e-ae6d-11cf-96b8-444553540000
说明: 标识浏览器的 ActiveX 控件。输入的值必须与上面的显示完全一致。仅适用于 object。

width 属性

值: n 或 n%
模板变量:$WI
说明:以像素值或浏览器窗口的百分比值来指定应用程序的宽度。

height 属性

值: n 或 n%
模板变量:$HE
说明: 以像素值或浏览器窗口的百分比值来指定应用程序的高度。

注意:因为 Flash 应用程序是可缩放的,所以只要高宽比保持不变,不论以任何尺寸播放,它们的品质都不会降低。(例如,以下尺寸的高宽比都是 4:3:640 x 480 像素、320 x 240 像素和 240 x 180 像素。)

codebase 属性

值: active.macromedia.com/flash7/cabs/swflash.cab#version=7,0,0,0

说明: 标识 Flash Player ActiveX 控件的位置,以便在尚未安装该控件时,浏览器可以自动下载它。输入的值必须与上面的显示完全一致。仅适用于 object。

pluginspage 属性

值: www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash
说明: 标识 Flash Player 插件的位置,以便在尚未安装该插件时,用户可以下载它。输入的值必须与上面的显示完全一致。仅适用于 embed 。

swliveconnect 属性

值: true | false
说明: (可选)指定第一次加载 Flash Player 时浏览器是否应启动 Java。如果忽略此属性,默认值为 false。如果在同一页面上同时使用 JavaScript 和 Flash,Java 必须处于运行状态,FSCommand() 函数才能起作用。但是,如果您运行 JavaScript 只是为了检测浏览器或用于其他与 fscommand() 动作无关的目的,则可以通过将 SWLIVECONNECT 设置为 false,从而防止 Java 启动。当没有将 JavaScript 和 Flash 一起使用时,也可以通过将 SWLIVECONNECT 属性明确设置为 true,强制 Java 启动。启动 Java 会显著增加启动 SWF 文件所需的时间,因此,只有在必要时才应将此标记设置为 true。仅适用于 embed。

使用 fscommand() 动作可从独立的放映文件中启动 Java。

play 属性/参数

值: true | false
模板变量:$PL
说明:(可选)指定应用程序是否在浏览器中加载时就开始播放。如果您的 Flash 应用程序是交互式的,则可以让用户通过单击按钮或执行某些其他任务来开始播放。在这种情况下,将 play 属性设置为 false 可禁止应用程序自动开始播放。如果忽略此属性,默认值为 true。

loop 属性/参数

值: true | false
模板变量:$LO
说明: (可选)指定 Flash 内容在它到达最后一帧后是无限制重复播放还是停止。如果忽略此属性,默认值为 true。

quality 属性/参数

值: low | medium | high | autolow | autohigh | best
模板变量:$QU
说明: (可选)指定在应用程序回放期间使用的消除锯齿级别。因为消除锯齿需要更快的处理器先对 SWF 文件的每一帧进行平滑处理,然后再将它们呈现到观众屏幕上,所以需要根据要优化速度还是优化外观来选择一个值:

“Low”使回放速度优先于外观,而且从不使用消除锯齿功能。

“Autolow”优先考虑速度,但是也会尽可能改善外观。回放开始时,消除锯齿功能处于关闭状态。如果 Flash Player 检测到处理器可以处理消除锯齿功能,就会打开该功能。

“Autohigh”在开始时是回放速度和外观两者并重,但在必要时会牺牲外观来保证回放速度。回放开始时,消除锯齿功能处于打开状态。如果实际帧频降到指定帧频之下,就会关闭消除锯齿功能以提高回放速度。使用此设置可模拟 Flash 中的“消除锯齿”命令(“查看”>“预览模式”>“消除锯齿”)。

“Medium”会应用一些消除锯齿功能,但并不会平滑位图。该设置生成的图像品质要高于“Low”设置生成的图像品质,但低于“High”设置生成的图像品质。

“High”使外观优先于回放速度,它始终应用消除锯齿功能。如果 SWF 文件不包含动画,则会对位图进行平滑处理;如果 SWF 文件包含动画,则不会对位图进行平滑处理。

“Best”提供最佳的显示品质,而不考虑回放速度。对所有输出都进行消除锯齿处理,并且对所有位图都进行平滑处理。

如果忽略 quality 属性,其默认值为 high。

bgcolor 属性/参数

值: #RRGGBB(十六进制 RGB 值)
模板变量:$BG
说明: (可选)指定应用程序的背景色。使用此属性来覆盖在 Flash SWF 文件中指定的背景色设置。此属性不影响 HTML 页面的背景色。

scale 属性/参数

值: showall | noborder | exactfit
模板变量:$SC
说明: (可选)当 width 和 height 值是百分比时,定义应用程序如何放置在浏览器窗口中。

“Showall”(默认值)使整个 Flash 内容显示在指定区域中,且不会发生扭曲,同时保持它的原始高宽比。边框可能会出现在应用程序的两侧。

“Noborder”对 Flash 内容进行缩放以填充指定区域,不会发生扭曲,它会使应用程序保持原始高宽比,但有可能会进行一些裁剪。

“Exactfit”使整个 Flash 内容显示在指定区域中,但不尝试保持原始高宽比。可能会发生扭曲。

如果忽略此属性(而且 width 和 height 值是百分比),则它的默认值是 showall。

align 属性

值: Default | L | R | T | B
模板变量:$HA
说明: 指定 object、embed 和 img 标记的 align 值,并确定如何在浏览器窗口内放置 Flash SWF 文件。

“默认”使应用程序在浏览器窗口内居中显示,如果浏览器窗口小于应用程序,则会裁剪边缘。

L、R、T 和 B 让应用程序分别沿着浏览器窗口的左、右、上、下边缘对齐,

FSO,Adodb.Stream与网页utf-8编码

这两天在更新网站相册的时候,遇到了网页编码的问题.整个网站都是采用utf-8编码,但是相册是后来客,原本使用的相册分类页面是gb2312的,所以相册的分类在显示的时候就成了乱码,用英文虽然可以,但是并不是所有的人都喜欢英文,所以这个问题必需得解决.仔细琢磨了一番,问题就在生成网页文件时使用的方法,FSO不能设置编码的格式,搜遍了整个脚本帮助文档也没有答案,唉,只能用adodb.stream了,这组件有一个charset属性值,可以指定生成页面使用utf-8或者是gb2312,这下问题解决了.现在把代码帖出来,希望对大家有帮助.

'————————————————-
'函数名称:ReadFile
'作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件
'—————————————————-
function ReadFile(FileUrl,CharSet)
dim str
set stm=server.CreateObject(“adodb.stream”)
stm.Type=2 '以本模式读取
stm.mode=3
stm.charset=CharSet
stm.open
stm.loadfromfile server.MapPath(FileUrl)
str=stm.readtext
stm.Close
set stm=nothing
ReadFromTextFile=str
end function
'————————————————-
'函数名称:WriteToFile
'作用:利用AdoDb.Stream对象来写入UTF-8格式的文本文件
'参数:FileUrl-文件相对路径;Str-文件内容;CharSet-编码格式(utf-8,gb2312…..)
'—————————————————-
function WriteToFile (FileUrl,byval Str,CharSet)
set stm=server.CreateObject(“adodb.stream”)
stm.Type=2 '以本模式读取
stm.mode=3
stm.charset=CharSet
stm.open
stm.WriteText str
stm.SaveToFile server.MapPath(FileUrl),2
stm.flush
stm.Close
set stm=nothing
end function

深夜小记

现在已经是凌晨1点了,忙活了这么长时间,终于把这个Flash相册给捣鼓好了,好累啊,该睡了.

[sweat]

自我感觉这是目前最好的Flash相册. [razz]

还有一个问题,Flash列表生成后,总是有历史记录,不知道应该怎么解决才好.

又一个情人节!!!

今年闰七月,这下可好了,牛郎织女可是高兴坏了,盼了多少个年头才能一年见两次面啊,呵呵.

[smile]

一分执著,两颗真心,拌三分糊涂,四分怜惜,加五钱眼泪,六两柔情,配浪漫七杯,用八分爱水,九经考验,煲成十全十美下果.
七夕又到了,祝名位甜蜜快乐!

[heart] [lol]

极品飞车9最高通缉 基本控制键列表 中文大地图

游戏控制键:

左转==左方向键
右转==右方向键
油门==上方向键
倒车==下方向键
进档==Shift
退档==左Ctrl
手煞车==空白键
飞速装置==右Ctrl
氮氧增压==Alt
摄影视角==C
向后看==L
进入赛事/商店==Enter
世界地图==M
阅读SMS==Tab
黑名单==B
重置车辆==R
暂停==Esc

选单控制键

标记选单项目==上、下、左、右方向键
循环切换/移动滑桿==上、下、左、右方向键
选择/前往下个画面==ENTER或按滑鼠左键
返回前个画面==ESC
截取画面==F12
(截取画面会储存在「我的文件」目录下的「My Pictures」资料夹里)

http://www.ishere.cn/uploads/200608/28_083853_jipingfeiche92.jpg