是否可以在文件系统级别强制所有创建的文件条目都具有有效的 UTF-8 名称?我正在使用 Btrfs。
我有一个带有 samba 4.1.12 的 unix 服务器(arch linux)。该共享中包含使用 utf-8 nfc 编码(标准 utf-8)的文件。
当我将此 samba 共享挂载到 osx 客户端 (10.9.5) 时,具有特殊名称的文件在 osx 客户端上File with "quotes"显示为已损坏 ( C7XSWH~V)。
当我在共享内的 osx 客户端上创建一个带有特殊字符的文件时,它在 osx 中正确显示,但在 unix 服务器上它显示一个奇怪的符号,如File with ?quotes?.
我认为这是因为 osx 期望文件名采用 utf-8 nf d形式,但这些文件作为 utf-8 nf c服务器。
基本上我想要一个工作 samba 共享,来自 osx 和 unix 客户端的用户可以访问和存储文件,并且应该允许文件名中的特殊字符。有没有办法做到这个跨平台?
我怎样才能告诉 osx 简单地对 samba 共享使用 utf-8 nfc 编码?有没有办法做到这一点?
我已经尝试过诸如在 unix 服务器上的 smb.conf 中显式设置编码之类的事情,但没有运气:
unix charset = utf-8
dos charset = utf-8
# --> error …Run Code Online (Sandbox Code Playgroud) 我托管的网页的 URL 中包含“ \”,与托管静态文件的project\xc2\xb2磁盘目录相匹配。project\xc2\xb2
此页面由基于 java 的客户端用来从 URL(生物信息学软件IGV)加载数据。\n我的页面以 的形式列出 URL http://localhost:60151/load?file=http://example.org/project\xc2\xb2/some/data/file.bam。\n在浏览器中单击这些链接将导致 IGV 客户端(在本地主机上运行)发出请求GET http://example.org/project\xc2\xb2/some/data/file.bam从我的服务器。
Linux/Mac 上的 \xe2\x9c\x85 IGV 通过请求此 URL 作为 UTF-8 编码\xc2\xb2=进行响应%C2%B2,一切正常。
\n\xe2\x9d\x8c 我新获得的Win-10用户的客户端请求\xc2\xb2= %B2(windows-1252编码),导致404-not-found。
在尝试了几十种方法之后,我不知道如何帮助这个用户。
\n我的印象是我应该能够在服务器端动态重写错误编码的 URL,以便它们最终仍然提供所需的数据,但是我不知道使规则模式匹配的神奇字符组合转义字符。
\nGET %B2我的ssl_access_logwith404作为返回的状态码,所以它确实是服务器在做。URI::Encode encode_uri(显然?),这在某种程度上更加错误?\xc2\xb2%C3%82%C2%B2 …我住在日本。最近有很多来自中国的垃圾邮件,邮件都是用中文写的。由于 spamassassin 不包含中文规则,因此大多数电子邮件以低分通过。
我想确定何时仅用中文撰写电子邮件。由于大多数日语汉字都包含在中文范围内(U+E400 到 U+E9FF),识别日语的一种方法是查看平假名(U+3040 到 U+309F)和片假名(U+30A0 到 U +30FF)。如果它包含平假名或片假名,我可以肯定地认为是日语,否则是中文。
如果我测试单个字符,例如:?或者?它们正确匹配,但是当我使用范围时它不起作用。这是我们尝试过的:
body CHINESE /[\xe4-\xe9]/ <--- this form seems to work fine
body JAPANESE /[\x30-\x31]/ <--- not sure what is actually matching
body JAPANESE /(?|?)/ <---- this matches single character just fine
body JAPANESE /[?-?]/ <--- doesn't work
body JAPANESE /[U+3040-U+30FF]/ <--- doesn't work
body JAPANESE /[\xe3\x81\x81-\xe3\x82\x96]/ <--- doesn't work
body JAPANESE /[\x{3040}-\x{30FF}]/ <--- doesn't work
Run Code Online (Sandbox Code Playgroud)
我真的不知道我在做什么了。我知道上面的一些没有意义......
指定这些范围的正确方法是什么?
我有一个用 utf8 编码的 bash 脚本。
在脚本中,我使用 sed 命令§作为分隔符。
现在,当我运行执行此脚本时会sed抱怨分隔符。
如果我使用普通字符作为 ex 的分隔符,@那么一切正常。
我已经在 putty[set utf8 in putty] 中查看了脚本,并且字符看起来很好。
还有来自locale命令的Linux 默认字符集显示
LC_CSET=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
可能出了什么问题?
早些时候,我曾经对 shell 脚本使用 windows-1252 编码,这曾经有效。
我的 webapp 的字符编码有问题,想知道如何更改 Linux 生产服务器上 tomcat 的默认编码,以匹配 Windows 上开发服务器的 cp 1252 编码(或至少是实验使用不同的编码,直到我能找到正确的编码)。
谢谢
例如,“å”可以编码为 /%E5 和 /%C3%A5 (utf-8)。我所有的文件名都是 UTF-8,所以 ASCII 变体返回 404。我希望这两个变体都能工作。
我尝试使用以下配置的变体将不正确的 URL 重写为正确的编码。我无法真正匹配这些位置,所以没有到达任何地方。
rewrite ^/%E5$ /%C3%A permanent;
rewrite ^/%25E5$ /%25C3%25A permanent;
location = /%E5 { return 301 /%C3%A; }
Run Code Online (Sandbox Code Playgroud)
我应该如何匹配这些百分比编码的位置?