你用二进制的方式写文件,不就行了啊。
写文件的时候,把要写入的数据,用一个函数转换程utf8编码的数据,就ok了啊
虽然我没在linux下编过,但每个系统,每个开发环境,肯定提供了
编码转换的函数库
的啊'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
'
Sub test()
strTest = "这是文件内容"
testFile = "d:\gb2312html"
Call SaveFile(testFile, strTest, "gb2312")
testFile = "d:\utf8html"
Call SaveFile(testFile, strTest, "utf8")
End Sub
Sub SaveFile(strPath_file, str, strPageCode)
If strPageCode = "utf8" Then
'存为UTF-8
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_file For Binary As #1
Put #1, , bUTF8
Close #1
End If
Else
'存为GB-2312
Fn = FreeFile
Open strPath_file For Output As Fn
Print #Fn, str
Close #Fn
End If
End Sub
在开始搜索框输入“更改国家或地区”,回车,点击右上角的“管理语言设置”,点击右上角的“管理”标签。
点击“更改系统区域设置”,勾选“beta版:使用Unicode UTF-8 提供全球语言支持”的选项,点击“确定”。
在d出的对话框中,点击“现在重新启动”按钮,即可把系统默认编码设为utf-8。
1 Eclipse默认使用工作区编码,如果工作区编码不是UTF-8,则新建文件时就会使用工作区编码而不是UTF-8。因此,在创建新的项目时,应该选择使用UTF-8编码的工作区。
2 新建文件时可能未正确设置编码格式,如果在新建文件时未指定编码格式,Eclipse会根据默认编码格式创建文件。因此,在新建文件时应该始终明确指定使用UTF-8编码。
3 在创建文件时,选择的文件类型可能不支持UTF-8编码。例如,如果创建一个Java文件,但选择了使用ISO-8859-1编码,则Eclipse将创建使用ISO-8859-1编码的文件。因此,在创建文件时应该始终选择支持UTF-8编码的文件类型。
要解决这个问题,可以尝试以下步骤:
1 确认工作区编码为UTF-8。在Eclipse菜单栏中选择Window -> Preferences -> General -> Workspace,在Text file encoding下选择UTF-8。
2 在创建新文件时,始终明确指定使用UTF-8编码。在新建文件对话框中,选择UTF-8编码格式。
3 在创建文件时,选择支持UTF-8编码的文件类型,如Java文件或HTML文件等。
总之,要正确创建UTF-8编码的文件,需要确保工作区编码为UTF-8、在新建文件时明确指定使用UTF-8编码,并选择支持UTF-8编码的文件类型。关于这个问题我原本不知道,但经过我逐步的摸索,找到了个方法,当时要告诉你的是在创建的时候VS会自动根据你系统来选择系统设置的默认的编码格式,因此目前是没办法设置的,唯一能改变他编码的格式的方式是再你关闭当前页面是可以用另存为的方式 选择 保存的文件格式
保存一次该文件格式后以后再在该页面上编码并保存时会保留你的编码格式
补充一句VS创建Web页面时默认的编码格式是utf-8用“LRC歌词文件转换器”软件把LRC字幕文件转换成SRT字幕文件,再把SRT字幕文件的文件扩展名改为UTF就行了。
或者用“字幕转换助手”软件直接把LRC字幕文件转成UTF字幕文件。不过会加上字幕转换助手制作的字样。
如果还有问题,可以去“飞宏技术天地”论坛看相关的文章。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)