У меня возникла проблема с созданием правильного пути, объединив имя папки в арабском языке с английским именем папки, функция concatenate работает нормально, если я печатаю путь, используя document.write (путь), которые показывают правильный путь, но если я передаю его fso.CopyFile(..)
У меня возникло исключение из-за неправильного пути.Создайте правильный путь, объединив LTR с RTL-строками
function wrap_dir(dir, str) {
if (dir === 'rtl') return '\u202B' + str + '\u202C';
return '\u202A' + str + '\u202C';
}
function Copy(){
var a = 'english'
var b = 'أ.ب-000082-13'
var c = '000004-ر خ-2014.xml'
var strPath = wrap_dir('ltr', '\\\\') + wrap_dir('ltr', a) + wrap_dir('ltr', '\\') + wrap_dir('rtl', b) + wrap_dir('ltr', '\\') + wrap_dir('ltr', c);
// "english\أ.ب-000082-13\000004-ر خ-2014.xml"
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile(strPath, to, 1);
}
Переменной strPath является "\\ английского \ أ.ب-000082-13 \ 000004-ر خ -2014. XML", который является правильным путем. Чтобы убедиться, что путь правильный, я прошел этот путь как жесткий код до fso.CopyFile
, и он отлично работал.
Эти символы зарезервированы? есть ли какая-то ссылка на это? – aorfevre
Если я не вставлял символы управления RLE (U + 202B) LRE (U + 202A) PDF (U + 202C), то порядок пути отображается беспорядочно http://stackoverflow.com/questions/29988144/concat-rtl-string-with -ltr-строка-в-JavaScript – user2638062