iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
佛心分享-我的私藏工具箱

作業系統的專武系列 第 25

Perl中文URI編解碼在AIX上的眉角

  • 分享至 

  • xImage
  •  
#!/usr/bin/perl
use utf8;
use Encode qw(encode);
# for example, printing to STDOUT
my $perl_string = "IT鐵人賽";
print encode('UTF-8', $perl_string) . "\n"; # in a Linux environment

use URI::Escape;
my $encoded = uri_escape_utf8($perl_string);
print $encoded . "\n";
my $decoded = uri_unescape($encoded);
print $decoded . "\n";

IT鐵人賽
IT%E9%90%B5%E4%BA%BA%E8%B3%BD
IT鐵人賽

但是該程式在AIX環境,在執行uri_unescape會報錯如下:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        LANG = "zh_CN.IBM-eucCn"
    are supported and installed on your system.
perl: warning: Failing back to the standard locale ("C").

從錯誤訊息看,是LC_ALL未設置,是故先執行以下命令再執行上支Perl程式就過關。

export LC_ALL=C

LC_ALL是AIX的環境變數,LC是Locale簡稱,export LC_ALL=C是除去所有本地化的設定。
LC是Locale簡稱,參考:https://www.ibm.com/docs/zh-tw/aix/7.3?topic=locales-understanding-locale-environment-variables


上一篇
Rails Runner做成過版script
下一篇
在Windows安裝OpenSSH Server作為SFTP Server
系列文
作業系統的專武30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言