<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      中國領先的會員管理系統,微卡通會員管理系統,聯系QQ:36281733

      asp.net ext vc++ gamehack asm vb ruby

      天下武功,唯快不破.
        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      MacOS 下載的文件名字亂碼問題

      Posted on 2023-04-19 23:48  很聰明的Joy  閱讀(773)  評論(0)    收藏  舉報

      MacOS 下載的文件名字亂碼問題

      千羽之城88IP屬地: 新疆
      12019.01.14 19:20:02字數 1,008閱讀 33,710

      第一種亂碼類型

      在網絡上查了一圈,找到三個相關答案:

      1. 下載的文件名總是「亂碼」?這里有各平臺的解決方法 :
        https://sspai.com/post/44360
        Automator 流程:
        https://cl.ly/2v1E3n3f1q2M
      2. Mac OS X 下文件名亂碼出現的原因和解決方法:
        https://zzi.io/?p=275
      3. 預組字符:
        https://zh.wikipedia.org/wiki/預組字符

      亂碼一:

      FCPX??????????§?????′?è?·?? LOGO? ?????±??¤o????¤′Minimal Logo Stings.dmg
      

      修復后:

      FCPX插件:20個現代字幕條動畫Modern Lower Thirds .dmg
      

      參考一中的代碼是關鍵:

      for f in "$@"
      do
          fileName=$(basename ${f})
          filePath=$(dirname ${f})
      
          # 兩種亂碼類型 GBK、UTF-8
          { fileNewName=$(echo $fileName | iconv -f UTF-8-Mac -t latin1 | iconv -f gbk)
          } || { fileNewName=$(echo $fileName | iconv -f UTF-8-Mac -t latin1)
          }  || { fileNewName=$(echo $fileName) | iconv -f UTF-8-Mac -t GBK 
         } # 更新 2021-03-12
      
          # 文件名正?;騺y碼類型不屬上述兩種時,新文件名為空,則跳過
          if [ -n "$fileNewName" ]; then
              # 避免文件重復:如果已存在修復后的文件名,則在新文件名后加上隨機字符串。
              if [ -e ${filePath}/$fileNewName ]; then
                  mv "$f" "${filePath}/${fileNewName}-${RANDOM}"
              else
                  mv "$f" "${filePath}/${fileNewName}"
              fi
          fi
      done
      

      制作“服務”步驟

      1. 打開automator


         
        1. 打開automator
      2. 創建 quick action 類型


         
        2. 創建 quick action 類型
      3. 將run shell script 拖到右邊下面


         
        3. 將run shell script 拖到右邊下面
      4. 將粘貼代碼到 do/done 之間


         
        4. 將粘貼代碼到 do/done 之間

      保存上面的得到的文件,系統會自動加載該文件,變成“右鍵”的服務。

       
      8fb4dbdd32fc8fc8c5b6e13a7187d25a.gif

      此處作廢【更新 2019-10-31】

      我們使用參考一的文件,下載后,雙擊安裝,點擊文件,右擊就可以改名了。

       
      image.png

       

      解釋

      utf-8-mac(Decomposed)?latin1(Precomposed)

      我們試圖解讀一下,其中 iconv -f utf-8-mac -t latin1 是將字符先進行 precomposed 處理,接著 iconv -f gbk,那么為什么要這么處理呢?因為MacOS默認使用 "decomposed" 的字符編碼。什么是 decomposed 和 precomposed 呢?

      瑞典語 的姓氏 ?str?m 可以有兩種Unicode表示方式,第一種采用預組字符?(U+00C5)與? (U+00F6), 第二種采用可分解基本字符A (U+0041)與上圓圈 (附加符號)(U+030A) 以及o(U+006F)與分音符 (U+0308).

      1. ?str?m (U+00C5 U+0073 U+0074 U+0072 U+00F6 U+006D)
      2. ?str?m (U+0041 U+030A U+0073 U+0074 U+0072 U+006F U+0308 U+006D)

      說人話就是:window系統是用 拉丁字母+acute 的 precomposed 方式,而 mac 系統使用 拉丁字母+acute1+acute2 的方式。

      第二種亂碼類型

      亂碼二:

      %E7%BB%8F%E6%B5%8E%E5%AD%A6%E7%9A%84%E6%80%9D%E7%BB%B4%E6%96%B9%E5%BC%8F++%E4%BF%AE%E8%AE%A2%E7%AC%AC12%E7%89%88.pdf
      

      修復后:

      經濟學的思維方式++修訂第12版.pdf
      

      如果文件名出現了 % 符號是使用了encodeURI將文件名編碼(參考 這里
      ),而下載的時候被編碼過的文件名沒有被改過來,就直接下載了,所以顯示的亂碼。修復代碼如下:

      for file in "$@"
      do
          # 等號兩邊不能有空格,不然沒法執行
          fileName=$(basename -- "$file")  
          filePath=$(dirname -- "$file")
          newName=$(echo -e "$fileName"| perl -pe 'y/+/ /;s/\%(\w\w)/chr hex $1/ge')
      
          # 重命名文件
          mv "$file" "${filePath}/${newName}"
          echo %文件名亂碼修復成功!
      done
      

      效果如下:

       
      urldecode.gif

      制作步驟同上

      1. 在 automator 里面新建服務,
      2. 找到run shell script——粘貼代碼
      3. 找到set value of variable,拖到run shell script下面,設置一個變量如: output
      4. 找到Display Notification,拖到set value of variable下面,輸入變量名:output。
      5. 保存。在右鍵就可以看到服務了。
       
      image.png

      第三種亂碼 [更新 2021-03-12]

      闂茶瘽ID錛圛nDesign CS5錛夊彜綾嶆帓鐗堝強鐩稿叧闄勪歡
      

      此亂碼來自MAC把GBK編碼以UTF-8-MAC解析得到的亂碼,可以根據依據一下代碼解析:

      echo "闂茶瘽ID錛圛nDesign CS5錛夊彜綾嶆帓鐗堝強鐩稿叧闄勪歡" | iconv -t gbk
      
      echo '闂茶瘽ID錛圛nDesign CS5錛夊彜綾嶆帓鐗堝強鐩稿叧闄勪歡' | \
      python3 -c 'import sys; str=sys.stdin.readlines();str=str[0].encode("gb18030").decode("UTF_8");print(str)'
      

      參考

      1. http://mirror.informatimago.com/next/developer.apple.com/qa/qa2001/qa1235.html

        Q: How do I convert a Unicode string to its precomposed form?

        A: It is possible to convert a string to precomposed Unicode using APIs introduced in Mac OS X 10.2. The rest of this Q&A explains the difference between precomposed and decomposed Unicode, why you might want to convert to precomposed Unicode, and how to do so.

        Precomposed versus Decomposed

        Certain Unicode characters can be encoded in more than one way. For example, an á (A acute) can be encoded either precomposed, as U+00C1 (LATIN CAPITAL LETTER A WITH ACUTE), or decomposed, as U+0041 U+0301 (LATIN CAPITAL LETTER A followed by a COMBINING ACUTE ACCENT). Precomposed characters are more common in the Windows world, whereas decomposed characters are more common on the Mac.

      中國領先的會員管理系統,微卡通會員管理系統,聯系QQ:36281733
      主站蜘蛛池模板: 无码av不卡免费播放| 日本伊人色综合网| 欧产日产国产精品精品| 国产欧美日韩va另类在线播放| 国产精品久久久久久亚洲色| 国产成人精品一区二三区在线观看| 亚洲乱熟女一区二区三区| 亚洲人成网网址在线看| 亚洲中文字幕一区二区| 亚洲精品tv久久久久久久久久 | 欧美s码亚洲码精品m码| 亚洲精品国产男人的天堂| 五月天中文字幕mv在线| 国产欧美另类久久久精品不卡| 海丰县| 亚洲精品在线二区三区| 国产精品亚洲二区在线播放| 真实国产熟睡乱子伦视频| 少妇撒尿一区二区在线视频| 大陆一级毛片免费播放| 国产精品天干天干综合网| 扶风县| 国产999精品2卡3卡4卡| 亚洲中文字幕无码一久久区| 国产精品青青在线观看爽香蕉 | 狠狠综合久久久久综| 亚洲欧美日韩久久一区二区 | 麻豆tv入口在线看| 日韩av无码精品人妻系列| 天天看片视频免费观看| 久久久久成人精品| 亚洲国产精品视频一二区| 日韩国产成人精品视频| 精品午夜久久福利大片| 精品久久精品久久精品九九| 精品无码三级在线观看视频 | 国产无遮挡又黄又爽又色| 69精品无人区国产一区| 亚洲av无码精品色午夜蛋壳| 中文字幕有码高清日韩| 亚洲国产成人无码影片在线播放|