Foxtable(狐表)用户栏目专家坐堂 → [求助]怎样把一个字符串转换为unicode的编码方式?


  共有2365人关注过本帖树形打印复制链接

主题:[求助]怎样把一个字符串转换为unicode的编码方式?

帅哥哟,离线,有人找我吗?
54292550
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
[求助]怎样把一个字符串转换为unicode的编码方式?  发帖心情 Post By:2017/3/29 12:55:00 [显示全部帖子]

在狐表里面用哪个函数把一个路径变成unicode的编码方式?
[此贴子已经被作者于2017/3/29 13:24:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
回复:(有点色)?这个??http://www.f...  发帖心情 Post By:2017/3/29 14:51:00 [显示全部帖子]

'辅助函数:BSTR字符串转换为CHAR字符串
Function StringToBytes(ByVal szText As String) As Byte()
    If Len(szText) > 0 Then
        StringToBytes = StrConv(szText, vbFromUnicode)
    End If
End Function
  
'辅助函数:CHAR字符串转换为BSTR字符串
Function BytesToString(bytesText() As Byte) As String
    If SafeArrayGetDim(bytesText) <> 0 Then
        BytesToString = StrConv(bytesText, vbUnicode)
    End If
End Function



StrConv(App.Path, vbUnicode)


网上找到的函数代码。。。。。
不知道怎么转换到foxtable里。

[此贴子已经被作者于2017/3/29 14:55:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/29 15:22:00 [显示全部帖子]

    :初始化lmc1控制卡。

    int lmc1_InitialTCHAR* strEzCadPath,BOOL bTestMode,HWND hOwenWnd);

                     strEzCadPathezcad2.exe所处的目录的全路径名称;

                     bTestMode  指是否是测试模式

                     hOwenWnd 指拥有用户输入焦点的窗口,用于检测用户暂停消息。


所有函的TCHAR对象都必须是UNICODE字符。





这个函数怎么用?

路径是string的,软件老是报错。

[此贴子已经被作者于2017/3/29 15:22:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
回复:(有点色)回复5楼,直接用字符就可以啊。  发帖心情 Post By:2017/3/29 22:49:00 [显示全部帖子]

直接用字符就报这个错误。

图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看

路径是:C:\foxtable2017\开发版\

FT代码:

dim lujing as string = "C:\foxtable2017\开发版\"

打开文件失败,但是这个路径下确实有这个文件。那就说明是路径错误。

我既然代码是“C:\foxtable2017\开发版\”,报错给我报的路径是乱码,肯定是编码格式不对。
开发文档里面要求路径必须是UNICODE字符。



图片点击可在新窗口打开查看此主题相关图片如下:报错1.jpg
图片点击可在新窗口打开查看

这个是我用前面那个代码转换出“测试”这两个字,然后写进目录里面出现的报错。
dim lujing as string = "Km諎"               'Km諎 = 测试
奇怪的是前面那个转换代码,转换不了我这个路径。不知道怎么回事。。。


[此贴子已经被作者于2017/3/29 23:17:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 9:32:00 [显示全部帖子]

色老师。。。我想把C:\foxtable2017\开发版\”,就转成那种乱码的格式,直接写到路径里面试试。。
可是您给的那个代码,不知道怎么搞得只有“发”“版”这两个字可以转换,别的要么转不出来,要么是空的。

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 11:36:00 [显示全部帖子]

各位老师帮忙看看是怎么回事...

图片点击可在新窗口打开查看此主题相关图片如下:错误.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 11:51:00 [显示全部帖子]



'辅助函数:BSTR字符串转换为CHAR字符串
Function StringToBytes(ByVal szText As String) As Byte()
    If Len(szText) > 0 Then
        StringToBytes = StrConv(szText, vbFromUnicode)
    End If
End Function
  
'辅助函数:CHAR字符串转换为BSTR字符串
Function BytesToString(bytesText() As Byte) As String
    If SafeArrayGetDim(bytesText) <> 0 Then
        BytesToString = StrConv(bytesText, vbUnicode)
    End If
End Function


lmc1_Initial(StrConv(App.Path, vbUnicode), False, Me.hWnd)



贴上一个别人家的代码。。。。就是没看懂怎么回事。。。
[此贴子已经被作者于2017/3/30 11:51:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
回复:(有点蓝)这个貌似没有必要转码了dim lujing a...  发帖心情 Post By:2017/3/30 12:13:00 [显示全部帖子]

不行呀。。。。

名:lmc1_Initial

    :初始化lmc1控制卡。

    int lmc1_InitialTCHAR* strEzCadPath,BOOL bTestMode,HWND hOwenWnd);

                     strEzCadPathezcad2.exe所处的目录的全路径名称;

                     bTestMode  指是否是测试模式

                     hOwenWnd 指拥有用户输入焦点的窗口,用于检测用户暂停消息。

    :在程序中必须首先调用lmc1_Initial,其它函数才能工作。

值:通用错误码




必须是字符串,不能是数组啊。。。


 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
回复:(有点色)声明或者定义函数的时候,定义成数组...  发帖心情 Post By:2017/3/30 12:52:00 [显示全部帖子]

试过了。。。还是提示文件不存在,,也就是路径不正确。。。。 

 回到顶部
帅哥哟,离线,有人找我吗?
54292550
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:4092 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By:2017/3/30 16:45:00 [显示全部帖子]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

弄了半天,最后又把色老师的代码用上了,,,刚才看到一个博客才明白,色老师那个代码是可以把路径转换为unicode字符的,只不过有些是以乱码显示出来的,有些是显示不出来的。我误以为有的可以转有的转不了。。。

Dim file As String = "C:\foxtable2017\开发版"
Dim bytes() As Byte
Dim utf As Encoding = Encoding.unicode
Dim def As Encoding = Encoding.Default
Bytes = def.GetBytes(file)
Bytes = Encoding.Convert(def, utf, Bytes)
file = def.GetString(Bytes)

这个代码是正确的可以转换。。只不过用output.show和messagebox.show显示的时候,就显示一个字母。。。。

在此感谢色老师。。。图片点击可在新窗口打开查看




 回到顶部
总数 12 1 2 下一页