日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

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

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



背景

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

問題截圖

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

肉眼看不到的區別


肉眼根本看不出來這兩行有什么區別,但執行結果就是有問題。

問題定位

編寫測試代碼,執行兩個字符串的 equals 方法,輸出結果是 false。逐個輸出對應字符的 ASCII 值,發現一個 echo 命令后的空格,一個是 32,另一個是 160。而 160 那個空格來自頁面文本域的拷貝值。

網絡搜索果然有關于這兩個空格的坑,160 這個空格是是由頁面上的 產生的空格,全稱為“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 操作系統的磁盤使用百分比的命令集。
替換后兩字符串的 equals 返回真,執行結果:

s1=s2:false
s1=s2:true

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

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

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

運動步數有氧達人2018-06-03

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

每日養生app2018-06-03

每日養生,天天健康

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

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