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

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

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

本文介紹了如何修復Java args無法從Windows資源管理器中正確獲取字符串中的日語字符?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在Windows 10上,我在"SendTo"目錄中有一個快捷方式文件。它是.BAT文件的快捷方式。

在.bat文件中只能有命令"python <filepath> %*""java -jar <filepath> %*"

當我從Windows資源管理器中選擇并右鍵單擊文件并將其發(fā)送到此快捷方式文件時,它將使用所選文件作為參數(shù)從<filepath>運行程序。

我正在嘗試發(fā)送文件名包含日語字符作為參數(shù)的文件。文件名會很好地傳遞給Python程序,但對于Java程序,文件名的ARG會混亂,并且Java程序找不到該文件。

例如,在Java和地區(qū)為日本的情況下,Filename ファイル名.txt的文件名在參數(shù)中變?yōu)?code>Filename 繝輔ぃ繧?繝?蜷?.txt。其他區(qū)域設置也不起作用。如果我先將args發(fā)送到python,然后再從python發(fā)送到Java,結果是一樣的。

如何使Java獲得正確的文件名或可以正確地找到文件?

推薦答案

您遇到了一個未解決的Java問題。請參閱開放錯誤JDK-8124977 cmdline encoding challenges on Windows,該錯誤合并了幾個與從命令行向Java應用程序傳遞Unicode參數(shù)相關的問題。

Java 18(將于下個月發(fā)布)通過實現(xiàn)JEP 400: UTF-8 by Default解決了一些UTF-8問題,但不幸的是,具體不是您的問題。來自JEP400的目標和目標:

    在整個標準Java API中使用UTF-8進行標準化,除了控制臺I/O[強調我的]

但是,有一種解決方法。參見Netbeans Chinese characters in java project properties run arguments,特別是this answer,它成功地處理了使用JNA(Java Native Access)作為命令行參數(shù)傳遞的中文字符。根據該答案:

JNA允許您從Java調用Windows API方法,而無需使用
本機代碼。因此,在Java應用程序中,您可以調用Win API方法
如GetCommandLineW()和CommandLineToArgvW()直接訪問
有關用于調用程序的命令行的詳細信息,包括
傳遞的任何參數(shù)。這兩種方法都支持Unicode。

因此該答案中的代碼不會直接讀取傳遞給main()的參數(shù)。相反,它使用JNA調用Win API方法來訪問它們。

當該代碼處理作為參數(shù)從命令行傳遞的中文字符時,它同樣適用于日語字符,包括您的日語文件名。

這篇關于如何修復Java args無法從Windows資源管理器中正確獲取字符串中的日語字符?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:修復 器中 字符 字符串 日語 獲取 資源管理
用戶無頭像

網友整理

注冊時間:

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

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

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

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

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

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

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

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

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