คำถามติดแท็ก urlencode

ในการ "เข้ารหัส URL" หรือข้อความ "เข้ารหัสเปอร์เซ็นต์" หมายถึงการเข้ารหัสเพื่อใช้ใน URL อักขระบางตัวไม่ถูกต้องเมื่อใช้ตามที่เป็นอยู่ใน URL และส่วนใหญ่จะเข้ารหัส URL (เข้ารหัสเปอร์เซ็นต์) เมื่อปรากฏใน URL

14
URLEncoder ไม่สามารถแปลอักขระช่องว่างได้
ฉันคาดหวัง System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8")); เพื่อส่งออก: Hello%20World (20 คือรหัส ASCII Hex สำหรับช่องว่าง) อย่างไรก็ตามสิ่งที่ฉันได้รับคือ: Hello+World ฉันใช้วิธีที่ผิดหรือเปล่า? วิธีการที่ถูกต้องที่ฉันควรใช้คืออะไร
179 java  url  urlencode 



8
วิธีการเข้ารหัส URL สตริงใน Ruby
ฉันจะURI::encodeสร้างสตริงได้อย่างไร: \x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a เพื่อรับมันในรูปแบบเช่น: %124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A ตาม RFC 1738? นี่คือสิ่งที่ฉันลอง: irb(main):123:0> URI::encode "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a" ArgumentError: invalid byte sequence in UTF-8 from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `gsub' from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `escape' from /usr/local/lib/ruby/1.9.1/uri/common.rb:505:in `escape' from (irb):123 from /usr/local/bin/irb:12:in `<main>' นอกจากนี้: irb(main):126:0> CGI::escape "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a" ArgumentError: invalid byte sequence in UTF-8 from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `gsub' from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `escape' from (irb):126 from …


11
จะสร้างพารามิเตอร์การสืบค้นใน Javascript ได้อย่างไร?
มีวิธีใดในการสร้างพารามิเตอร์การสืบค้นสำหรับการส่งคำขอ GETใน JavaScript หรือไม่ เช่นเดียวกับใน Python ที่คุณมีurllib.urlencode()ซึ่งใช้ในพจนานุกรม (หรือรายการสองสิ่งสองตัว) และสร้างสตริงเช่น'var1=value1&var2=value2'.

4
ฉันควรเข้ารหัสข้อมูล POST หรือไม่
ฉันกำลังโพสต์ข้อมูลไปยัง API ภายนอก (โดยใช้ PHP หากเกี่ยวข้อง) ฉันควรเข้ารหัส URL ของตัวแปร POST ที่ฉันส่งผ่านหรือไม่ หรือฉันต้องเข้ารหัส URL เท่านั้น GET data? ขอบคุณ! UPDATE: นี่คือ PHP ของฉันในกรณีที่เกี่ยวข้อง: $fields = array( 'mediaupload'=>$file_field, 'username'=>urlencode($_POST["username"]), 'password'=>urlencode($_POST["password"]), 'latitude'=>urlencode($_POST["latitude"]), 'longitude'=>urlencode($_POST["longitude"]), 'datetime'=>urlencode($_POST["datetime"]), 'category'=>urlencode($_POST["category"]), 'metacategory'=>urlencode($_POST["metacategory"]), 'caption'=>($_POST["description"]) ); $fields_string = http_build_query($fields); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS,$fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch);

7
การเข้ารหัสพารามิเตอร์การสืบค้น URL ใน Java
หนึ่งเข้ารหัสพารามิเตอร์การสืบค้นเพื่อไปที่ url ใน Java ได้อย่างไร ฉันรู้ว่านี่เป็นคำถามที่ชัดเจนและถูกถามไปแล้ว มีรายละเอียดปลีกย่อยสองประการที่ฉันไม่แน่ใจ: ควรเข้ารหัสช่องว่างใน url เป็น "+" หรือเป็น "% 20"? ใน chrome ถ้าฉันพิมพ์ "http://google.com/foo=?bar me" chrome จะเปลี่ยนเป็นการเข้ารหัสด้วย% 20 จำเป็น / ถูกต้องหรือไม่ในการเข้ารหัสโคลอน ":" เป็น% 3B Chrome ไม่ หมายเหตุ: java.net.URLEncoder.encodeดูเหมือนจะไม่ได้ผลดูเหมือนว่าจะมีการส่งแบบฟอร์มสำหรับการเข้ารหัสข้อมูล ตัวอย่างเช่นเข้ารหัสพื้นที่+แทน%20และเข้ารหัสโคลอนซึ่งไม่จำเป็น java.net.URI ไม่เข้ารหัสพารามิเตอร์การค้นหา
109 java  urlencode 

5
วิธีที่เหมาะสมในการเข้ารหัส URL ของอักขระ Unicode คืออะไร?
ฉันรู้จักโครงการ% uxxxx ที่ไม่ได้มาตรฐาน แต่ดูเหมือนจะไม่ใช่ทางเลือกที่ชาญฉลาดเนื่องจากโครงการนี้ถูกปฏิเสธโดย W3C ตัวอย่างที่น่าสนใจ: ตัวละครหัวใจ หากฉันพิมพ์สิ่งนี้ลงในเบราว์เซอร์ของฉัน: http://www.google.com/search?q=♥ จากนั้นคัดลอกและวางฉันเห็น URL นี้ http://www.google.com/search?q=%E2%99%A5 ซึ่งทำให้ดูเหมือนว่า Firefox (หรือ Safari) กำลังทำสิ่งนี้ urllib.quote_plus(x.encode("latin-1")) '%E2%99%A5' ซึ่งสมเหตุสมผลยกเว้นสิ่งที่ไม่สามารถเข้ารหัสเป็นภาษาลาติน -1 ได้เช่นอักขระจุดสามจุด … ถ้าฉันพิมพ์ URL http://www.google.com/search?q=… ลงในเบราว์เซอร์ของฉันจากนั้นคัดลอกและวางฉันจะได้รับ http://www.google.com/search?q=%E2%80%A6 กลับ. ซึ่งน่าจะเป็นผลจากการทำ urllib.quote_plus(x.encode("utf-8")) ซึ่งสมเหตุสมผลเนื่องจาก…ไม่สามารถเข้ารหัสด้วย Latin-1 แต่มันก็ไม่ชัดเจนสำหรับฉันว่าเบราว์เซอร์รู้ได้อย่างไรว่าจะถอดรหัสด้วย UTF-8 หรือ Latin-1 เนื่องจากสิ่งนี้ดูเหมือนจะคลุมเครือ: In [67]: u"…".encode('utf-8').decode('latin-1') Out[67]: u'\xc3\xa2\xc2\x80\xc2\xa6' ใช้งานได้ดังนั้นฉันไม่รู้ว่าเบราว์เซอร์คิดอย่างไรว่าจะถอดรหัสด้วย UTF-8 หรือ Latin-1 อะไรคือสิ่งที่ถูกต้องในการทำกับตัวละครพิเศษที่ฉันต้องจัดการ?


2
เหตุใด curl จึงตัดสตริงข้อความค้นหานี้
ฉันแน่ใจว่าคำตอบนี้จะเป็นปัญหาการเข้ารหัสอักขระที่ชัดเจนอย่างเจ็บปวด ... ฉันใช้ curl บนบรรทัดคำสั่งเพื่อทดสอบจุดสิ้นสุดบางส่วนในแอป python จุดสิ้นสุดรับ url params ของละติจูดและลองจิจูด ไม่มีอะไรพิเศษเกินไป ฉันใส่คำสั่ง: curl -v -L http://localhost:5000/pulse/?lat=41.225&lon=-73.1 เซิร์ฟเวอร์ตอบสนองพร้อมเอาต์พุตแบบ verbose curl: * Connected to localhost (127.0.0.1) port 5000 (#0) > GET /pulse/?lat=41.225 HTTP/1.1 > User-Agent: curl/7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3 > Host: localhost:5000 > Accept: */* > * HTTP 1.0, …
92 curl  urlencode 

19
เข้ารหัส / ถอดรหัส URL ใน C ++ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ไม่มีใครรู้รหัส C ++ ที่ดีที่ทำสิ่งนี้?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.