decodedURI не отображается должным образом в HTML - PullRequest
2 голосов
/ 19 августа 2011

У меня есть строка, закодированная в perl с использованием

uri_escape ($string);

Затем я передаю ее в Javascript и декодирую через

fileName = decodeURIComponent ($somevariable);

Затем я оповещаю о переменной и строкеотображается правильно (в данном случае)

his33a;Cell-Line_Fly-biotin-tagged-H33;Tissue_embryo-derived-cell-line;Developmental-Stage_late-embryonic-stage;Compound_80-600-mM;extract_soluble-fraction;sampling_time_point_1-–-2-hours;DNA-tiling-array;Rep-2;Dmel_r54;modENCODE_2523;GSM333854.wiggle

Однако в HTML это отображается как

his33a%3BCell-Line_Fly-biotin-tagged-H33%3BTissue_embryo-derived-cell-line%3BDevelopmental-Stage_late-embryonic-stage%3BCompound_80-600-mM%3Bextract_soluble-fraction%3Bsampling_time_point_1-%E2%80%93-2-hours%3BDNA-tiling-array%3BRep-2%3BDmel_r54%3BmodENCODE_2523%3BGSM333854.wiggle

1 Ответ

3 голосов
/ 19 августа 2011

Perl / URI::Escape uri_escape и JavasScript encodeURIComponent не делают одно и то же.Чтобы гарантировать совместимость, используйте модуль JavaScript от CPAN:

use 5.014;
use warnings;
use JavaScript;
use URI::Escape;

my $rt = JavaScript->create_runtime();
my $cx = $rt->create_context();
my $string = 'his33a;Cell-Line_Fly-biotin-tagged-H33;Tissue_embryo-derived-cell-line;Developmental-Stage_late-embryonic-stage;Compound_80-600-mM;extract_soluble-fraction;sampling_time_point_1-–-2-hours;DNA-tiling-array;Rep-2;Dmel_r54;modENCODE_2523;GSM333854.wiggle';

# Perl:
say uri_escape($string);
# his33a%3BCell-Line_Fly-biotin-tagged-H33%3BTissue_embryo-derived-cell-line%3BDevelopmental-Stage_late-embryonic-stage%3BCompound_80-600-mM%3Bextract_soluble-fraction%3Bsampling_time_point_1-%E2%80%93-2-hours%3BDNA-tiling-array%3BRep-2%3BDmel_r54%3BmodENCODE_2523%3BGSM333854.wiggle

# JavaScript:
$cx->eval(qq|
function escape_uri(string) { return encodeURIComponent(string) }
|);
say $cx->call('escape_uri', $string);
# his33a%3BCell-Line_Fly-biotin-tagged-H33%3BTissue_embryo-derived-cell-line%3BDevelopmental-Stage_late-embryonic-stage%3BCompound_80-600-mM%3Bextract_soluble-fraction%3Bsampling_time_point_1-%C3%A2%C2%80%C2%93-2-hours%3BDNA-tiling-array%3BRep-2%3BDmel_r54%3BmodENCODE_2523%3BGSM333854.wiggle
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...