2010-03-16 15 views

Odpowiedz

17

Trzeba użyć podwójny cudzysłów wewnątrz tych cytatów (i uzyskać wartości zwracanej - string.replace nie działa na samym ciągiem, zwraca nowy ciąg znaków):

name = name.Replace(""""," ") 
+0

tak będzie zastąpić, ale jest to fragment zdaje się sprawiać wrażenie, że to się stanie w miejscu. To nie będzie, nowy ciąg jest zwracany (jestem pewien * ty * wiesz to, po prostu mówiąc, że wyjaśnię to w odpowiedzi). –

1

należy zwrócić wynikowy ciąg z powrotem do łańcucha, a także ucieczki że podwójne cytaty z podwójnym cytować lub "\"

name = name.Remove("""", String.Empty) 
+3

Nie można uciec od napisów w VB.Net –

10

Zamiast "łącza danych uciekł" metoda ...

name = name.Replace("""", "") 

Można być jawne i nieco bardziej czytelne ...

name = name.Replace(ControlChars.DblQuote, "") 

I BTW, zamiast myśląc o tym jako o powrocie NOWYCH STRUN; lepiej wymyślić REPLACE jako część klasy STRING powiązanej z instancją "name". Jeśli utracisz starą wartość nazwy, której nie chcesz, to po prostu ...

Dim aNewString$ = name.Replace(ControlChars.DblQuote, "") 

"Nazwa" pozostanie niezmieniona.

7
name = name.Replace(Chr(34), "") 
+0

http: //yorktown.cbe.wwu. edu/sandvig/shared/ASCIICodes.aspx udostępnia listę dostępnych znaków ASCII – Toshihiko

+0

rozwiązało to mój problem w testach Acunetix –

0

Miałem paskudnego, gdy próbowałem, jak mogłem, nie mogłem uzyskać Replace() do pracy. W końcu okazało się, że struny, które próbowałem wyczyścić, miały zupełnie inne postacie, które wyglądały jak podwójne cytaty. Geniusz edytował plik skryptu za pomocą programu Word, więc "hello" stał się “hello”. Subtelne, czy co? Patrząc na plik za pomocą edytora szesnastkowego, otwierający cytat był trzyznakową wartością 0xe2 0x80 0x9c, a im bliżej było 0xe2 0x80 0x9d. Nic dziwnego, że wymiana nie powiodła się!

0

„Ta część jest usunięcie" znak w ciągu

Dim GetDate31 As String = Date31(16).Replace(Chr(34), "")