- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在学习 Unicode 编程的艺术,并将其应用于个人项目。很快我就意识到很难做到正确,甚至很难理解你是否做得对:如果工具错了,你在评估工作结果时可能会出错。
我在这个练习中的小目标是了解我应该传递给 mkdir
的内容。与对 File::Path::make_path
有益的东西相比.换句话说:他们期望什么?他们会根据语言环境处理编码,还是我应该为他们处理?
我编写了以下脚本,它接受来自 @ARGV
的参数并为他们每个人创建目录$_
, 使用这两个函数以及编码和解码的 froms。
#!/usr/bin/perl
use warnings;
use strict;
use utf8;
use v5.16;
use Encode;
use Encode::Locale;
use File::Path qw/make_path/;
use File::Spec;
# Everything under the './tree' directory
mkdir 'tree';
mkdir File::Spec->catdir('tree', $_)
for ('mkdir', 'mkdir_enc', 'make_path', 'make_path_enc');
foreach (map decode(locale => $_) => @ARGV) {
mkdir File::Spec->catdir('tree', 'mkdir', $_);
mkdir encode(locale_fs => File::Spec->catdir('tree', 'mkdir_enc', $_));
make_path(File::Spec->catdir('tree', 'make_path', $_));
make_path(encode(locale_fs => File::Spec->catdir('tree', 'make_path_enc', $_)));
}
./unicode_mkdir.pl a→b←c
tree/mkdir
[x] 或 tree/mkdir_enc
包含名为 gibberish 的目录; tree/make_path
[x] 或 tree/make_path_enc
包含名为 gibberish 的目录; find
验证了它:
$ find tree
tree
tree/mkdir_enc
tree/mkdir_enc/a→b←c
tree/mkdir
tree/mkdir/a→b←c
tree/make_path_enc
tree/make_path_enc/a→b←c
tree/make_path
tree/make_path/a→b←c
tree
命令让它变得如此错误......(一种很常见的疾病)但至少我可以看到结果都是一样的:
$ tree tree
tree
├── make_path
│ └── a\342\206\222b\342\206\220c
├── make_path_enc
│ └── a\342\206\222b\342\206\220c
├── mkdir
│ └── a\342\206\222b\342\206\220c
└── mkdir_enc
└── a\342\206\222b\342\206\220c
8 directories, 0 files
ls -R
命令似乎证实了这一点。
$ ls -R tree
tree:
make_path make_path_enc mkdir mkdir_enc
tree/make_path:
a→b←c
tree/make_path/a→b←c:
tree/make_path_enc:
a→b←c
tree/make_path_enc/a→b←c:
tree/mkdir:
a→b←c
tree/mkdir/a→b←c:
tree/mkdir_enc:
a→b←c
tree/mkdir_enc/a→b←c:
mkdir
和 make_path
找出并修复错误的? 最佳答案
- How can
mkdir
andmake_path
figure out and fix the wrong one?
utf8::is_utf8
函数(见
http://perldoc.perl.org/utf8.html )检查是否为给定字符串设置了 UTF-8 标志;或者您可以使用
Dump
来自
Devel::Peek
模块,它打印出标量的所有内容,包括设置的标志列表。
mkdir
和
make_path
不需要做太疯狂的事;他们可以通过将 Unicode 字符串编码为八位字节字符串来处理它们,就像您在调用
encode
时所做的那样。 .
encode
不关心它的参数是否设置了那个标志,它只是相信你不会调用它在一个字符串上,除非该字符串应该被解释为一个 Unicode 字符序列。但是,如果您使用现代的、支持 Unicode 的库和
use utf8
,并且只做 Unicode-ishly 的所有事情,除非专门与面向字节的交互外部系统(你使用
Encode::encode
和
Encode::decode
),你应该没问题。)
- Am I doing it right code-wise ('course not)?
- Am I doing it right filesystem-wise?
Encode::encode
提供显式的第三个参数指定它应该如何处理不可编码的字符。 (默认行为是用替换字符替换它们,例如 ?
用于 US-ASCII;这可能不是您想要的。) mkdir
的返回值. error
make_path
的选项,并检查生成的arrayref;或者,您可能想要包装 make_path
在 eval
堵塞。 关于perl - perl 中的 Unicode,mkdir 练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233493/
我正在尝试在 Java 中创建一个新目录,但它不起作用。我想知道为什么,因为我首先尝试了 mkdir() ,然后尝试了 mkdirs() ,它应该创建不存在的目录。 我写道: boolean stat
我尝试使用 mkdir 在本地 git 存储库中创建文件夹。它没有用,但是mkdir -p 有效。 为什么? 顺便说一句,我正在使用 Mac 操作系统。我检查了 mkdir -p 的定义。但是我还是不
我一直在关注 Learn Code the Hard Way 的教程,了解如何在 PowerShell 中使用命令行界面。在 this文章中,它告诉我使用命令 mkdir -p i\like\icec
下面是我的 MainActivity.java 代码。根据 toasts 的错误是在创建目录时。 主 Activity .java @Override protected void onActivit
我使用以下代码: final File newFile = new File("/mnt/sdcard/test/"); newFile.mkdir(); // if I use mkdirs() r
我被这个逼疯了: Log.d("STATE", Environment.getExternalStorageState()); File f = new File(Environment.getExt
我正在创建一个应用程序,我需要创建多个文件夹,而且创建文件夹是一步到位的。 要做最优化,然后我意识到 mkdir() 比 system('mkdir path') 快得多; 有谁知道原因吗? 最佳答案
mkdir $2 || echo "I can't create directory $2" && exit 8 大家好,这是我在这里的第一篇文章,请多多关照。 我现在正在制作一个脚本,这一行让我很困
您好,我最近遇到了这个问题,但能够解决它。实际上路径中的拼写错误。我想知道如何正确处理这些错误。也就是说,如果 mkdir 失败,我的程序应该继续执行并且应该安全地返回 false。这是我的代码 tr
我正在尝试在我的程序开始时创建一个日志文件。 如果 /log 目录没有创建目录,我需要检查它是否存在,然后继续创建日志文件。 好吧,我尝试使用 os.Mkdir(以及 os.MkdirAll),但无论
以下代码可与其他 API 一起使用,但 26 public static boolean cretaeDir() { String dir = Environment.getExternalS
尝试在 PHP 中使用 mkdir() 函数时出现此错误。 基本上,我是在我的服务器上创建一个基于 input field 的 HTML 表单中名为 (inPut) 的 sundomain。 现在我正
为什么 file.mkdir 返回 false? Google 指出可能有多种原因(例如安全性、权限、路径名等)。 我的问题: 如何找到返回false的确切原因? 如果安全/权限是一个原因,那么为什么
我找不到答案的简单问题: 使用 os.mkdir("somedir") 比 os.system("mkdir somedir") 或 subprocess.call() 有好处吗,超越代码可移植性?
这个问题与this question无关.我已经看到它了,但它是特定的 Android 4.4.2 问题,因为该代码在其他版本的 Android 上运行良好。 final File path = ne
os.Mkdir 和 syscall.Mkdir 在 Golang 中有相同的 API 系统调用.Mkdir: func Mkdir(path string, mode uint32) (err er
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、它们为什么不起作用以及预期结果。另
这个问题在这里已经有了答案: What is different between makedirs and mkdir of os? (3 个答案) 关闭 9 个月前。 根据 python 3.6
我通过 bash 中的 mkdir 和 python 中的 os.mkdir 使用文件模式创建了目录。他们制作了具有不同权限的目录。 我在命令行中的测试代码如下, $ mkdir -m 0775 aa
给定: MIGRATION_FOLDER=/opt/migration 要么这样: ssh -tt ${REMOTE_SERVER} sudo sh -c "mkdir -p /opt/migrati
我是一名优秀的程序员,十分优秀!