找回密码
 立即注册
搜索
查看: 5400|回复: 44

[软件] 软件不支持中文路径是哪里的问题

[复制链接]
     
发表于 2022-4-29 17:52 | 显示全部楼层 |阅读模式
不懂软件开发  只想知道这是谁的问题

都2202年了 我把madvr放到中文目录里就不能运行
回复

使用道具 举报

     
发表于 2022-4-29 17:57 | 显示全部楼层
不支持unicode字符编码的问题
回复

使用道具 举报

     
发表于 2022-4-29 17:58 | 显示全部楼层
老外没这需求+windows不用utf8
回复

使用道具 举报

     
 楼主| 发表于 2022-4-29 17:59 | 显示全部楼层
lawsherman 发表于 2022-4-29 17:57
不支持unicode字符编码的问题

是作者不想支持  

还是系统原因

还是其它原因之类的
回复

使用道具 举报

     
 楼主| 发表于 2022-4-29 17:59 | 显示全部楼层
→熙← 发表于 2022-4-29 17:58
老外没这需求+windows不用utf8

但好多国外软件也支持中文路径啊

有些就不支持

是作者的郭吗
回复

使用道具 举报

     
发表于 2022-4-29 18:02 | 显示全部楼层
本帖最后由 lawsherman 于 2022-4-29 18:04 编辑

外国人很少认知到unicode的问题

再加上配置开发环境也是个普遍的难点。就算是国内这么多成熟的软件公司,配置开发环境也是个老大难问题

回复

使用道具 举报

     
 楼主| 发表于 2022-4-29 18:05 | 显示全部楼层
lawsherman 发表于 2022-4-29 18:02
外国人很少认知到unicode的问题

我把LAVFilters放中文路径就行

madvr就不行

以前很多软件不支持 理解

现在现在不支持中文路径就是非主流一样
回复

使用道具 举报

     
发表于 2022-4-29 18:19 | 显示全部楼层
观铃の使魔 发表于 2022-4-29 18:05
我把LAVFilters放中文路径就行

madvr就不行

开发者没需求不想弄就不会去弄,就是这么简单
回复

使用道具 举报

     
发表于 2022-4-29 19:01 | 显示全部楼层
本帖最后由 GomezS 于 2022-4-29 19:15 编辑

编辑
回复

使用道具 举报

     
发表于 2022-4-29 19:10 | 显示全部楼层
有那么麻烦吗?

Windows API一般两套,一套unicode,另一套是unicode套壳的ansi

现在VS开发c/c++默认都是unicode,不支持unicode路径的软件这年头都不好找了
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-4-29 19:22 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-4-29 19:26 来自手机 | 显示全部楼层
本帖最后由 superlattice 于 2022-4-29 19:34 编辑

编码问题,英语用ASCII码单字节字符足够了,但是中文日文法文韩文德文等等靠Unicode的就是另一回事……

历史越长的编程语言包袱越多,需要额外调整。像Python/Go这种比较年轻的,默认就支持UTF-8
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-4-29 21:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-4-29 21:42 | 显示全部楼层
其实没那么容易……
Win10 有一个内核语言 这个是安装IOS决定的,改不了
还有一个 Windows显示语言 这个就是系统的UI语言
还有一个 非Unicode程序的语言。这一个选项现在提供了Beta通用版选项

但在实际使用过程中……各种BUG和问题排查简直是一场灾难
并不只限于平时遇到的乱码和路径问题。还有很多程序的启动和运行问题。
回复

使用道具 举报

     
发表于 2022-4-29 21:47 来自手机 | 显示全部楼层
einhorn 发表于 2022-4-29 19:10
有那么麻烦吗?

Windows API一般两套,一套unicode,另一套是unicode套壳的ansi

其实只有一套,A系API实际就是把字符串编码转换一下然后直接调用W系API。所以用A系API性能还低一些。
回复

使用道具 举报

     
发表于 2022-4-29 22:27 | 显示全部楼层
烟萝 发表于 2022-4-29 21:42
其实没那么容易……
Win10 有一个内核语言 这个是安装IOS决定的,改不了
还有一个 Windows显示语言 这个就 ...

我以前装的中文版Win, 装了语言包调成英文
大更新的时候就会用模糊的中文显示正在更新, 这是传说中的内核语言吗
回复

使用道具 举报

     
发表于 2022-4-30 00:26 | 显示全部楼层
当然是软件的问题
C++标准对Unicode的态度很暧昧,所以各种普通字符串操作在C++里面都很难做,很多都只能通过C的POSIX标准或者调用Win32 API来做
POSIX标准是一个陈旧的东西,里面很多东西依赖于系统内部状态(比如说系统默认编码)
Win32 API有W结尾的和A结尾的两套,W是用Unicode的,A是用系统默认编码的;Windows上也有一部分POSIX标准的函数,但是是只支持系统默认编码的
系统默认编码在Linux上现在基本上都已经是UTF-8了,所以不考虑兼容性的情况下很少出问题(老的GBK之类的编码生成的文件无法使用,需要通过iconv等工具来转换)
系统默认编码在Windows上现在还是以各个语言的历史标准为主(比如中文是GBK),可以兼容20年来的大部分程序(为Win2000及以后开发的应用程序大部分能运行);也可以设置成UTF-8(beta),但很多程序会崩溃、出错、乱码(因为它们会假定系统默认编码是GBK或者Shift-JIS等)

很多程序先在Linux上实现,然后移植到Windows上,喜欢使用POSIX标准的函数,但实际上正确的做法应该是改为使用Win32 API的W结尾的函数

如果微软像苹果那样激进,应该在Windows上A结尾的和POSIX的函数在10年以前就已经不能用了
回复

使用道具 举报

发表于 2022-4-30 00:32 | 显示全部楼层
别说中文了,很多软件的路径连空格都不能有。

回复

使用道具 举报

发表于 2022-4-30 00:39 | 显示全部楼层
unicode api是9x时代的问题了,第一个能很好支持unicode的系统是win2000,你可以算算多少年了……vc里面明明只需要定义一个宏就能支持但是很多软件都没做,尤其是日本的软件
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-4-30 12:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-4-30 15:53 | 显示全部楼层
观铃の使魔 发表于 2022-4-29 18:05
我把LAVFilters放中文路径就行

madvr就不行

mad系本就是个人闭源软件 madshi不想做就是不想做
lavf是开源 总有有需求的人自己会去patch
根本没法类比 去跟某些小鬼子的闭源软件比还差不多
回复

使用道具 举报

     
发表于 2022-4-30 23:50 来自手机 | 显示全部楼层
如果我用的是是英语,应该会觉得为了适配其他语言,换用更大字符集的这种行为很不爽
回复

使用道具 举报

     
发表于 2022-5-1 10:35 来自手机 | 显示全部楼层
是你的问题
目录名没有中文和空格有那么难么

— from Google Pixel 6 Pro, Android 12 of S1 Next Goose v2.5.4
回复

使用道具 举报

     
发表于 2022-5-1 12:47 | 显示全部楼层
ipcjs 发表于 2022-5-1 10:35
是你的问题
目录名没有中文和空格有那么难么

不难,那支持中文路径有那么难吗
回复

使用道具 举报

     
发表于 2022-5-1 13:31 来自手机 | 显示全部楼层
装了一大堆乱七八糟工程软件的人表示早就把系统语言改成英文,路径也全英文了,哪怕用拼音也不敢用中文,费时费力
回复

使用道具 举报

     
发表于 2022-5-1 13:32 来自手机 | 显示全部楼层
windaria 发表于 2022-5-1 12:47
不难,那支持中文路径有那么难吗

难啊,路径我可以自己改,软件我怎么说服开发者去支持
回复

使用道具 举报

     
发表于 2022-5-1 13:42 | 显示全部楼层
不是c++写的软件一般就不会有这些问题,但Windows的api都是用c++写的dll

  -- 来自 有消息提醒的 Stage1官方 Android客户端
回复

使用道具 举报

     
发表于 2022-5-1 14:21 来自手机 | 显示全部楼层
中文一个汉字对应几个字符还得处理一下。再加上c用指针和内存本身就略麻烦一点,有问题很正常。其实其他语言也不一定能很正常的处理扩展区,只不过gbk字符集一般没有问题罢了。
回复

使用道具 举报

     
发表于 2022-5-1 21:44 来自手机 | 显示全部楼层
其实微软的问题大点,对Unicode这种就应该默认使用,旧软件用xp mode这种形式来解决,实在解决不了可以学苹果虚拟机。现在win11了,还默认非Unicode程序编码为本地编码,早就应该所有程序默认编码UTF8了。

—— 来自 Xiaomi MI 6, Android 11上的 S1Next-鹅版 v2.5.2-play
回复

使用道具 举报

发表于 2022-5-1 23:36 | 显示全部楼层
hxy8241 发表于 2022-5-1 21:44
其实微软的问题大点,对Unicode这种就应该默认使用,旧软件用xp mode这种形式来解决,实在解决不了可以学苹 ...

微软支持的unicode是utf16,uft8大部分情况下还要转换。

uft8只是标准之一,utf8本身也有自己的问题。
回复

使用道具 举报

     
发表于 2022-5-1 23:52 | 显示全部楼层
Jet.Black 发表于 2022-5-1 23:36
微软支持的unicode是utf16,uft8大部分情况下还要转换。

uft8只是标准之一,utf8本身也有自己的问题。

微软的unicode其实是wtf-8,因为surrogate code points可以不成对
回复

使用道具 举报

     
发表于 2022-5-2 01:16 来自手机 | 显示全部楼层
windaria 发表于 2022-5-1 12:47
不难,那支持中文路径有那么难吗

软件作者不一定是中国人
开发软件的时候不一定有考虑中文
解析路径的时候忘了处理空格

各种情况都有可能呀
你不想打英文,敲拼音也行呀,人是活的,软件是死的
为什么要跟个软件死杠


— from Google Pixel 6 Pro, Android 12 of S1 Next Goose v2.5.4
回复

使用道具 举报

     
发表于 2022-5-2 09:27 | 显示全部楼层
windaria 发表于 2022-5-1 12:47
不难,那支持中文路径有那么难吗

用c写的话非常难,还得考虑是什么编码。
回复

使用道具 举报

     
发表于 2022-5-2 15:29 来自手机 | 显示全部楼层
每次给小朋友讲怎么安装r都会遇见这个问题
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-5-2 15:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-5-2 23:10 | 显示全部楼层
劳动塑造人 发表于 2022-5-2 15:36
默认unicode大概会增加资源开销吧

这话你放三十年前我会信。。。
回复

使用道具 举报

     
发表于 2022-5-3 00:00 来自手机 | 显示全部楼层
本帖最后由 Flyfish233 于 2022-5-3 19:40 编辑
回忆and无语 发表于 2022-4-29 22:27
我以前装的中文版Win, 装了语言包调成英文
大更新的时候就会用模糊的中文显示正在更新, 这是传说中的内核 ...

Windows 自己也知道可以调整的是“Windows 显示语言”,重在“显示”二字
早前好像用中文版注册用户,user 目录的文件夹就是中文的,比如正常的是 Desktop/, Document/,但是中文的 wim 装出来的就叫 桌面/ 文档/
试了下,确实是如此,少装精简版的系统
—— 来自 HUAWEI hi3660, Android 11上的 S1Next-鹅版 v2.5.2
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-5-3 00:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
发表于 2022-5-3 00:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2022-5-3 04:16 | 显示全部楼层
Flyfish233 发表于 2022-5-3 00:00
Windows 自己也知道可以调整的是“Windows 显示语言”,重在“显示”二字
早前好像用中文版注册用 ...

没有吧,User目录只有自己会因为中文用户名变成中文的,但是下面的分类文件夹只是资源管理器显示为中文的,实际上在路径里还是英文的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-14 19:29 , Processed in 0.120908 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表