vba判断文件编码格式_[VBA]Excel输出utf-8编码格式文件 使用WideCharToMultiByte
'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相关推荐
- java 更改excel文件名称_根据Excel文件中的内容,修改指定文件夹下的文件名称
问题:根据Excel文件中内容,把文件名称由第2列,改为第1列.比如:把文件"123.jpg"修改为"1.jpg". aaarticlea/png;base64 ...
- linux打开文件命令_详解Linux中3个文件查找相关命令
来自:民工哥技术之路 1.which命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. ...
- python中文件分类_李亚涛:python实现电脑文件一键分类
原标题:李亚涛:python实现电脑文件一键分类 python还挺好玩的,可以做蛮多事情! 比如桌面非常非常多的文件,想要整理一下,也可以用到python 比如我就自己写了个程序,整理文件就是运行一下 ...
- java导出csv文件乱码_记一次java生成csv文件乱码的解决过程 (GB2312编码)
系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口] 和 [服务*** server]. 场景:[服务*** server]多 ...
- 【C++文件操作_(最全面浅而易懂的文件操作)】
C++文件操作 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放 通过文件可以将数据持久化 C++中对文件操作需要包含头文件<fstream> 文件类型分为两种: 文本文件: ...
- java中打开文件显示_从java程序中打开任何文件
在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...
- ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
大家好,我是波仔,今天又来跟各位学电脑基础的朋友们分享知识,让我们一起来学习吧. 复制文件或文件夹 在我们日常操作文件或文件夹的过程中,经常会遇到需要复制一些文件或文件夹什么的,下面我们就一起来分享一 ...
- python解压到指定文件夹_在Python中压缩和解压文件
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你已经使用计算机一段时间,你可能遇到了.zip扩展名的文件.它们是可以保存许多其他文件,文件夹和子文件 ...
- mcldownload文件夹_我的世界存档在哪个文件夹及导入存档的方法介绍
现在很多游戏都有存档功能,我的世界也不例外,有些玩家想知道我的世界存档在哪个文件夹,今天就让小编告诉大家我的世界电脑存档位置吧. 我的世界存档在哪个文件夹 电脑版我的世界: 在我的电脑里找我的世界的根 ...
- python写文件字母_不能错过!详解Python文件读写。
我:小哥哥,之前的文件操作我不是很懂,能详细讲一下吗? 惨绿青年:既然你诚心诚意地问了,我就大发慈悲告诉你吧. 我:??? 惨绿青年:开个玩笑嘛,眼睛不要瞪这么大. 惨绿青年:文件操作其实很简单,使用 ...
最新文章
- VS2013中, 无法嵌入互操作类型“……”,请改用适用的接口的解决方法
- 6种常见的Git错误以及解决的办法
- 网上商城留言板的实现——用户添加留言
- VS2010常用快捷键自定义
- assign复制对象_JavaScript标准对象:assign,values,hasOwnProperty和getOwnPropertyNames方法介绍...
- 前端学习(2164):runtimeonly和runtimecompiler
- MFC开发IM-第十三篇、MFC改变字体重影的问题
- 原python实现素数判断_Python实现求最大公约数及判断素数的方法
- java 新项目计划_项目计划 - KerryJava - 博客园
- sql获取服务器系统时间,sql server 获取系统时间的方法
- 发那科机器人override指令_发那科FANUC机器人编写简单的程序详细教程
- android 设置类PreferenceActivity
- 如何获取最好权限删除顽固文件Mac系统
- cisco思科模拟器中断translating域名翻译快捷键
- 关于信息安全专业学习的一些看法
- win10内存满载测试软件,Windows 10 内置的内存条检查工具Memory Diagnostics Tool
- linux窗口死,Linux系统入门学习:Linux 上 Wireshark 界面僵死解决
- PHP连接SQL SERVER 数据库 PHP连接MYSQL数据库并解决中文乱码问题。
- 基于FPGA 的TF卡 UHS-I 方式存储
- rsyslog 定义格式
热门文章
- 利用电脑玩android版天天连萌刷高分 二,天天连萌安卓刷分教程
- AI软件与字体设计-CSDN就业班-专题视频课程
- syslog服务器与elk区别_Splunk和ELK深度对比
- 快手校招java一面凉经,快手电商生态Java实习一面(凉)
- springboot+vue+elementUI “漫画之家”在线漫画周边销售购物交流系统#毕业设计
- 深入解析Windows操作系统之总体架构
- python统计字符串中单词个数、单词之间用空格分割_输入一行字符,统计其中有多少个单词,单词之间用空格分隔开...
- Perl:正则表达式
- inside c# second edition 读书笔记 2004-11-30
- SAP 实习 面试 工作 心得 体会记录