การลบอักขระ“ NUL”


96

ฉันมีตัวอักษรแบบนั้นใน notepad ++

ภาพหน้าจอ npp ของ NULs

เมื่อฉันพยายามคัดลอกทั้งบรรทัดฉันกำลังคัดลอกทุกอย่างจนกระทั่ง "NUL":

File:1

สิ่งที่ฉันต้องการทำคือแทนที่โมฆะเหล่านั้นให้เป็นอะไรฉันจึงสามารถคัดลอกทั้งบรรทัดได้ อาจมีคีย์เวิร์ดใด ๆ ที่จะบอก notepad ++ (หรือโปรแกรมอื่น ๆ ที่อาจช่วยได้) เพื่อแทนที่อักขระเหล่านั้น? เมื่อฉันเลือกให้ใช้คลิกขวาแล้ว "ล้าง" มันหายไป - แต่ฉันไม่ต้องการทำทีละรายการ

ฉันไม่สนใจที่จะลบสาเหตุของปัญหานี้เพียงแค่เอฟเฟกต์ (NULs)

คำตอบ:


107

สิ่งนี้อาจช่วยได้ฉันเคยใช้ไฟล์ของฉันแบบนี้: http://security102.blogspot.ru/2010/04/findreplace-of-nul-objects-in-notepad.html

โดยทั่วไปคุณต้องแทนที่อักขระ \ x00 ด้วยนิพจน์ทั่วไป


ใช่นั่นคือสิ่งที่ฉันกำลังมองหา ขอบคุณมาก :)
user2618929

7
โปรดทราบว่าคุณควรลอง "\ x00", "\ 00" หรือ "\ 0" สำหรับฉัน \ x00 และ \ 00 ใช้ไม่ได้ ฉันต้องการใช้ \ 0 สำหรับอักขระแทนที่
Hooplator15

1
@JohnAugust ขอบคุณมากสำหรับสิ่งนี้ \ x00 ยังคงค้นหาช่องว่าง "ปกติ" ตลอดจนอักขระ NUL
Steffen Winkler

Thx ต้องการค้นหาไฟล์. dmp สำหรับกลุ่มข้อความหลายบรรทัด อย่างไรก็ตามน่าเสียดายที่ notepad ล้มเหลวเนื่องจากความน่าจะเป็นของฉันเนื่องจากขนาดของการถ่ายโอนข้อมูล
Mellester

38

คลิกค้นหา -> แทนที่ -> ค้นหาอะไร: \ 0 แทนที่ด้วย: "ว่าง" โหมดค้นหา: ขยาย -> แทนที่ทั้งหมด


ขยายเพื่ออะไร ??
rimalonfire

@rimiro ขยายความในแง่ที่ว่าอักขระที่ใช้ Escape เป็นพิเศษ (อักขระที่ใช้ในการแสดงออกปกติพื้นฐานเช่น \ n et cetera) สามารถจับคู่กับอักขระที่พิมพ์
twobob

9

ฉันมีปัญหาเดียวกัน ข้างต้นทำให้ฉันมาถูกทาง แต่ไม่ถูกต้องในกรณีของฉัน งานที่เกี่ยวข้องอย่างใกล้ชิด:

  • เปิดไฟล์ของคุณใน Notepad ++
  • พิมพ์ Control-A (เลือกทั้งหมด)
  • พิมพ์ Control-H (แทนที่)
  • ในประเภท 'ค้นหาอะไร' \x00
  • ใน 'แทนที่ด้วย' ปล่อยให้ว่างเปล่า
  • ใน 'โหมดค้นหา' เลือก 'ขยาย'
  • จากนั้นคลิกที่ 'แทนที่ทั้งหมด'

5

ลองค้นหาและแทนที่ พิมพ์\ x00ในกล่องข้อความค้นหาให้เลือกตัวเลือกนิพจน์ทั่วไป ปล่อยให้ Replace textbox ว่างไว้และคลิกแทนที่ทั้งหมด ปุ่มลัดสำหรับค้นหาและแทนที่คือ ctrl + H


6
ค้นหาด้วย \ x00 คุณอาจต้องตรวจสอบตัวเลือกนิพจน์ทั่วไป
Miller

คุณต้องใช้นิพจน์ทั่วไปคำตอบนี้ไม่ถูกต้องเนื่องจากเห็นได้ชัดว่าคุณสามารถคัดลอกผ่านถ่านพิเศษเช่นนั้นได้
mahieddine

ฉันให้คำตอบตามคำถามของ SO เขากำลังถามบน notepad ++ ไม่ใช่ notepad ฉันไม่รู้ว่าทำไมผู้คนถึงลงคะแนนให้กับคำตอบของฉันและคนอื่น ๆ ก็ชื่นชมคำตอบของ AlexShumilov
Miller

2

ฉันพยายามใช้ \ x00 แต่มันไม่ได้ผลสำหรับฉันเมื่อใช้ C # และ Regex ฉันประสบความสำเร็จกับสิ่งต่อไปนี้:

//The hexidecimal 0x0 is the null character  
mystring.Contains(Convert.ToChar(0x0).ToString() );  

// This will replace the character
mystring = mystring.Replace(Convert.ToChar(0x0).ToString(), "");  

1
สิ่งนี้เกี่ยวข้องกับ Notepad ++ อย่างไร
ChrisWue

OP ถามเกี่ยวกับ notepad ++ หรือโปรแกรมอื่น ๆ ที่อาจช่วยได้ คุณช่วยกรุณาอัปเดตคำตอบด้วยรหัสพิเศษเพื่อให้มันสมบูรณ์เพื่อที่จะได้ช่วยคนอื่น ๆ มือใหม่ใน. Net (เช่นอ่านไฟล์ข้อความจากไดรฟ์แทนที่ nul chars บันทึกกลับเป็นไฟล์ข้อความฉันหมายถึงอะไรประมาณนี้และคำแนะนำ วิธีเปิดรหัส C # โดยไม่มี VS เช่นใช้ csc.exe)
omegastripes

2

เปิด Notepad ++
เลือกแทนที่ (Ctrl / H)
ค้นหาสิ่ง: \ x00
แทนที่ด้วย:
คลิกที่ปุ่มตัวเลือกนิพจน์ทั่วไป
คลิกที่แทนที่ทั้งหมด


-1

เน้นอักขระ null ตัวเดียวไปที่ค้นหาแทนที่โดยปกติจะแทรกข้อความที่ไฮไลต์ลงในช่องค้นหาโดยอัตโนมัติ ใส่ช่องว่างหรือเว้นว่างในช่องแทนที่


8
สิ่งนี้ใช้ไม่ได้กับอักขระ NUL ใน Notepad ++ ทำงานร่วมกับอักขระพิเศษ ASCII อื่น ๆ เช่น BEL แต่ NUL สามารถพบได้โดยใช้ Extended Escape Code หรือ RegEx เท่านั้น
Ayelis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.