亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747



背景

在 linux 下手寫一個命令和拷貝 html 頁面文本域中的命令執(zhí)行結(jié)果完全不同,后者的命令無法被 Linux 識別。

問題截圖

ASCII 碼不同的兩種空格及潛在問題:32 和160

肉眼看不到的區(qū)別


肉眼根本看不出來這兩行有什么區(qū)別,但執(zhí)行結(jié)果就是有問題。

問題定位

編寫測試代碼,執(zhí)行兩個字符串的 equals 方法,輸出結(jié)果是 false。逐個輸出對應(yīng)字符的 ASCII 值,發(fā)現(xiàn)一個 echo 命令后的空格,一個是 32,另一個是 160。而 160 那個空格來自頁面文本域的拷貝值。

網(wǎng)絡(luò)搜索果然有關(guān)于這兩個空格的坑,160 這個空格是是由頁面上的 產(chǎn)生的空格,全稱為“non-breaking space”,其 UTF-8 編碼值為 u00A0。

解決辦法,將頁面表單中的 160 空格替換為普通空格:

		String s11 = "mem_status=`free -m|sed -n '2p'|sed -E 's/ +/ /g'`;mem_total=`echo $mem_status|cut -d \" \" -f 2`;mem_used=`echo $mem_status|cut -d \" \" -f 3`;mem_usedpercent=`echo \"scale=2;$mem_used*100/$mem_total\" | bc | awk '{printf "%.2f", $0}'`;echo $mem_usedpercent";
		String s22 = "mem_status=`free -m|sed -n '2p'|sed -E 's/ +/ /g'`;mem_total=`echo $mem_status|cut -d \" \" -f 2`;mem_used=`echo $mem_status|cut -d \" \" -f 3`;mem_usedpercent=`echo \"scale=2;$mem_used*100/$mem_total\" | bc | awk '{printf "%.2f", $0}'`;echo $mem_usedpercent";
		System.out.println("s1=s2:"+s11.equals(s22));
		s22 = s22.replaceAll("\u00A0+", " ");
		s11 = s11.replaceAll("\u00A0+", " ");
		System.out.println("s1=s2:"+s11.equals(s22));

就是一個簡單的獲取 Linux 操作系統(tǒng)的磁盤使用百分比的命令集。
替換后兩字符串的 equals 返回真,執(zhí)行結(jié)果:

s1=s2:false
s1=s2:true

分享到:
標簽:ASCII
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定