火山这个UTF16有时候还挺烦人的
特别是网络传输的时候,比如我在对接原生Go服务器上传时,上传后文件名乱码的问题,这个问题在火山端无论怎么转码都没有用,必须在服务端专门做适配,自己写的服务端还好改一下服务端就行了,要是对接别人的直接寄也不知道当时是为什么选择的UTF16
https://bbs.voldp.com/forum.php?mod=image&aid=34329&size=300x300&key=65791e3fe73d8295&nocache=yes&type=fixnone
上传数据都是字节集,怎么会乱码。。又不是文本直接发送的。这种都是自己代码写的问题了吧。 创世魂 发表于 2025-8-12 12:05
上传数据都是字节集,怎么会乱码。。又不是文本直接发送的。这种都是自己代码写的问题了吧。 ...
远端文件名啊,比如上传一个“新建文件.txt”到原生Go端就是会乱码啊,Go端必须单独适配才行 火山不是有文本到UTF8()吗,注意第二个参数为假就行了 shuimiao 发表于 2025-8-12 12:14
火山不是有文本到UTF8()吗,注意第二个参数为假就行了
这是文本型啊,能转也不会吐槽了
本帖最后由 shuimiao 于 2025-8-12 14:34 编辑
blackvolcano 发表于 2025-8-12 12:19
这是文本型啊,能转也不会吐槽了
那就是你用的这个命令和他的库的问题,他不支持设置服务端编码,内部没有将火山的文本型转为UTF8的选项,与火山没有关系。如果能查看源码,你可以自己去改动下。使用UTF16作为默认编码的地方多的是,跟UTF8一样重要和普遍。比如记事本里的另存为Unicode就是UTF16LE,双字节字符因为对齐,处理方便。 视窗选择UTF16是因为微软的API接口是这个编码,MFC、WTL等界面库也是用UTF16。
你那个命令是CURL封装的问题,因为CURL不支持UTF16,封装时是加了编码转换的,它默认转换成多字节,而不是UTF8,你可以改一下。
<火山程序 类型 = "通常" 版本 = 1 />
方法 置远程文件字段名称 <公开 类型 = 整数 注释 = "设置远程文件字段名称." 返回值注释 = "成功返回0,失败返回非0值(请参考\"执行状态码\"中所提供的常量定义)." @禁止流程检查 = 真>
参数 字段名 <类型 = 文本型>
{
@ return (part != NULL ? curl_mime_filename(part, CU8String (@<字段名>.GetText ()).GetText ()) : CURLE_OBJECT_NOT_INIT);
}
Xelloss0618 发表于 2025-8-12 18:16
视窗选择UTF16是因为微软的API接口是这个编码,MFC、WTL等界面库也是用UTF16。
你那个命令是CURL封装的问题 ...
大佬牛皮????????????????????????
页:
[1]