'API 函数WideCharToMultiByte参数说明

'第一个参数:指定要转换成的字符集代码页,它可以是任何已经安装的或系统自带的字符集,你也可以使用如下所示代码页之一。

'    CP_ACP 当前系统ANSI代码页

'    CP_MACCP 当前系统Macintosh代码页

'    CP_OEMCP 当前系统OEM代码页,一种原始设备制造商硬件扫描码

'    CP_SYMBOL Symbol代码页.

'    CP_THREAD_ACP 当前线程ANSI代码页,用于Windows 2000及以后版本,我不明白是什么

'    CP_UTF7 UTF-7,设置此值时lpDefaultChar和lpUsedDefaultChar都必须为NULL

'    CP_UTF8 UTF-8,设置此值时lpDefaultChar和lpUsedDefaultChar都必须为NULL

'第二个参数:指定如何处理没有转换的字符,但不设此参数函数会运行的更快一些,我都是把它设为0。

'第三个参数: 待转换的宽字符串?

'第四个参数:待转换宽字符串的长度,-1表示转换到字符串结尾。

'第五个参数: 接收转换后输出新串的缓冲区?

'第六个参数: 输出缓冲区大小?

'第七个参数: 指向字符的指针?

'第八个参数:开关变量的指针,用以表明是否使用过默认字符,一般设为0。

Private Declare Function WideCharToMultiByte Lib "kernel32" ( _

ByVal CodePage As Long, _

ByVal dwFlags As Long, _

ByVal lpWideCharStr As Long, _

ByVal cchWideChar As Long, _

ByRef lpMultiByteStr As Any, _

ByVal cchMultiByte As Long, _

ByVal lpDefaultChar As String, _

ByVal lpUsedDefaultChar As Long) As Long

Private Const CP_UTF8 = 65001

Private Sub WriteOut(strPath As String, str As String)

Dim lBufSize As Long

Dim lRest As Long

Dim bUTF8() As Byte

Dim TLen As Long

TLen = Len(str)

lBufSize = TLen * 3 + 1

ReDim bUTF8(lBufSize - 1)

lRest = WideCharToMultiByte(CP_UTF8, 0, StrPtr(str), TLen, bUTF8(0), lBufSize, vbNullString, 0)

If lRest Then

lRest = lRest - 1

ReDim Preserve bUTF8(lRest)

Open strPath For Binary As #1

Put #1, , bUTF8

Close #1

End If

End Sub

'如何使用==================================================

Private Sub CommandButton1_Click()

Const PATH = "E:\testfile.xml"

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")

'这里建立一个空文件 并不打开他 建完拉到

fso.CreateTextFile (PATH)

'把所有的内容都放到这个字符串里

Dim str As String

For i = 1 To 50

Dim test As String

test = Trim(Worksheets("Sheet1").Range("A" + Trim(i)).Text)

If Not test = vbNullString Then

str = str & test & vbCrLf

End If

Next

'不用打开文件 让WriteOut直接去写

Call WriteOut(PATH, str)

MsgBox "O K"

End Sub

vba判断文件编码格式_[VBA]Excel输出utf-8编码格式文件 使用WideCharToMultiByte相关推荐

  1. java 更改excel文件名称_根据Excel文件中的内容,修改指定文件夹下的文件名称

    问题:根据Excel文件中内容,把文件名称由第2列,改为第1列.比如:把文件"123.jpg"修改为"1.jpg". aaarticlea/png;base64 ...

  2. linux打开文件命令_详解Linux中3个文件查找相关命令

    来自:民工哥技术之路 1.which命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which  查看可执行文件的位置. whereis 查看文件的位置. ...

  3. python中文件分类_李亚涛:python实现电脑文件一键分类

    原标题:李亚涛:python实现电脑文件一键分类 python还挺好玩的,可以做蛮多事情! 比如桌面非常非常多的文件,想要整理一下,也可以用到python 比如我就自己写了个程序,整理文件就是运行一下 ...

  4. java导出csv文件乱码_记一次java生成csv文件乱码的解决过程 (GB2312编码)

    系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多 ...

  5. 【C++文件操作_(最全面浅而易懂的文件操作)】

    C++文件操作 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放 通过文件可以将数据持久化 C++中对文件操作需要包含头文件<fstream> 文件类型分为两种: 文本文件: ...

  6. java中打开文件显示_从java程序中打开任何文件

    在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...

  7. ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...

    大家好,我是波仔,今天又来跟各位学电脑基础的朋友们分享知识,让我们一起来学习吧. 复制文件或文件夹 在我们日常操作文件或文件夹的过程中,经常会遇到需要复制一些文件或文件夹什么的,下面我们就一起来分享一 ...

  8. python解压到指定文件夹_在Python中压缩和解压文件

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你已经使用计算机一段时间,你可能遇到了.zip扩展名的文件.它们是可以保存许多其他文件,文件夹和子文件 ...

  9. mcldownload文件夹_我的世界存档在哪个文件夹及导入存档的方法介绍

    现在很多游戏都有存档功能,我的世界也不例外,有些玩家想知道我的世界存档在哪个文件夹,今天就让小编告诉大家我的世界电脑存档位置吧. 我的世界存档在哪个文件夹 电脑版我的世界: 在我的电脑里找我的世界的根 ...

  10. python写文件字母_不能错过!详解Python文件读写。

    我:小哥哥,之前的文件操作我不是很懂,能详细讲一下吗? 惨绿青年:既然你诚心诚意地问了,我就大发慈悲告诉你吧. 我:??? 惨绿青年:开个玩笑嘛,眼睛不要瞪这么大. 惨绿青年:文件操作其实很简单,使用 ...

最新文章

  1. VS2013中, 无法嵌入互操作类型“……”,请改用适用的接口的解决方法
  2. 6种常见的Git错误以及解决的办法
  3. 网上商城留言板的实现——用户添加留言
  4. VS2010常用快捷键自定义
  5. assign复制对象_JavaScript标准对象:assign,values,hasOwnProperty和getOwnPropertyNames方法介绍...
  6. 前端学习(2164):runtimeonly和runtimecompiler
  7. MFC开发IM-第十三篇、MFC改变字体重影的问题
  8. 原python实现素数判断_Python实现求最大公约数及判断素数的方法
  9. java 新项目计划_项目计划 - KerryJava - 博客园
  10. sql获取服务器系统时间,sql server 获取系统时间的方法
  11. 发那科机器人override指令_发那科FANUC机器人编写简单的程序详细教程
  12. android 设置类PreferenceActivity
  13. 如何获取最好权限删除顽固文件Mac系统
  14. cisco思科模拟器中断translating域名翻译快捷键
  15. 关于信息安全专业学习的一些看法
  16. win10内存满载测试软件,Windows 10 内置的内存条检查工具Memory Diagnostics Tool
  17. linux窗口死,Linux系统入门学习:Linux 上 Wireshark 界面僵死解决
  18. PHP连接SQL SERVER 数据库 PHP连接MYSQL数据库并解决中文乱码问题。
  19. 基于FPGA 的TF卡 UHS-I 方式存储
  20. rsyslog 定义格式

热门文章

  1. 利用电脑玩android版天天连萌刷高分 二,天天连萌安卓刷分教程
  2. AI软件与字体设计-CSDN就业班-专题视频课程
  3. syslog服务器与elk区别_Splunk和ELK深度对比
  4. 快手校招java一面凉经,快手电商生态Java实习一面(凉)
  5. springboot+vue+elementUI “漫画之家”在线漫画周边销售购物交流系统#毕业设计
  6. 深入解析Windows操作系统之总体架构
  7. python统计字符串中单词个数、单词之间用空格分割_输入一行字符,统计其中有多少个单词,单词之间用空格分隔开...
  8. Perl:正则表达式
  9. inside c# second edition 读书笔记 2004-11-30
  10. SAP 实习 面试 工作 心得 体会记录