200

I have variable like:

string title = string.empty;

My need is that whatever string is passed to it I have to display the content inside a div with in a double quotes. So I have written something like:

...
...
<div>"+ title +@"</div>
...
...

But how can I add the double quotes here? So that it will display like:

"How to add double quotes"
Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
ANP
  • 14,647
  • 21
  • 55
  • 79
  • Nope doesn't work asp.net, c# vs2013 no matter how i code if you look and the page source " and ' are always displayed. I'm using `Attributes.Add(...' – djack109 May 18 '16 at 17:50
  • this would be helpful : https://stackoverflow.com/questions/46298985/chr34-equivalent?noredirect=1&lq=1 – Siavash Sep 25 '18 at 10:42

19 Answers19

389

You need to escape them by doubling them (verbatim string literal):

string str = @"""How to add doublequotes""";

Or with a normal string literal you escape them with a \:

string str = "\"How to add doublequotes\"";
Oded
  • 477,625
  • 97
  • 867
  • 998
  • and how to remove it while saving in database? I just want to remove additional double quote used for escaping and not both – Anil Purswani Sep 30 '14 at 10:35
  • 1
    @AnilPurswani - huh? You need to read up on what escaping means. – Oded Sep 30 '14 at 10:38
  • 1
    when used string str = @"""How to add doublequotes"""; it stores ""How to add doublequotes"" in database.....and while fetching it retrieves the same.... now trying to convert it....well I got the answer - str.Replace("\\\"", "\""); ...... anyways thanks for your reply .... – Anil Purswani Sep 30 '14 at 10:42
  • If you want a string to contain quotes, you escape them. That has nothing to do with storing them in the database - if you want to strip the quotes before storing in the DB, then do that. – Oded Sep 30 '14 at 10:43
  • yeah I was just trying to get the solution of http://stackoverflow.com/questions/26118354/xslcompiledtransform-load-raises-object-reference-not-set-to-an-instance-of-an-o and reached to this question, which seems similar when was the data fetched from database..... – Anil Purswani Sep 30 '14 at 10:49
  • Nope doesn't work asp.net, c# vs2013 no matter how i code if you look and the page source " and ' are always displayed. I'm using `Attributes.Add(...` – djack109 May 18 '16 at 17:49
  • @djack109 - that's a different issue. Perhaps ask a question about your exact issue? – Oded May 18 '16 at 18:00
  • @AnilPurswani the better way to remove all quotes would be: `.Trim('"')` – Flimtix Apr 05 '22 at 10:51
56

So you are essentially asking how to store doublequotes within a string variable? Two solutions for that:

var string1 = @"""inside quotes""";
var string2 = "\"inside quotes\"";

In order to perhaps make it a bit more clear what happens:

var string1 = @"before ""inside"" after";
var string2 = "before \"inside\" after";
Fredrik Mörk
  • 151,624
  • 28
  • 285
  • 338
20

If you have to do this often and you would like this to be cleaner in code, you might like to have an extension method for this.

This is really obvious code, but still I think it can be useful to grab it and make you save time.

  /// <summary>
    /// Put a string between double quotes.
    /// </summary>
    /// <param name="value">Value to be put between double quotes ex: foo</param>
    /// <returns>double quoted string ex: "foo"</returns>
    public static string AddDoubleQuotes(this string value)
    {
        return "\"" + value + "\"";
    }

Then you may call foo.AddDoubleQuotes() or "foo".AddDoubleQuotes(), on every string you like.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
codea
  • 1,239
  • 1
  • 13
  • 29
15

If I understand your question properly, maybe you can try this:

string title = string.Format("<div>\"{0}\"</div>", "some text");
7

You can also include the double quotes into single quotes.

string str = '"' + "How to add doublequotes" + '"';
Yannick Turbang
  • 346
  • 4
  • 7
6

Another note:

    string path = @"H:\\MOVIES\\Battel SHIP\\done-battleship-cd1.avi";
    string hh = string.Format("\"{0}\"", path);
    Process.Start(@"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe ", hh + " ,--play");

The real value of hh, as passed, will be "H:\MOVIES\Battel SHIP\done-battleship-cd1.avi".

When needing double double literals, use: @"H:\MOVIES\Battel SHIP\done-battleship-cd1.avi";

Instead of: @"H:\MOVIESBattel SHIP\done-battleship-cd1.avi";

Because the first literals is for the path name and then the second literals are for the double quotation marks.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
DR.
  • 555
  • 6
  • 20
4

Using string interpolation with a working example:

var title = "Title between quotes";
var string1 = $@"<div>""{title}""</div>";  // Note the order of the $@
Console.WriteLine (string1);

Output

<div>"Title between quotes"</div>
Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
WorkSmarter
  • 3,558
  • 2
  • 27
  • 33
3

You can use $.

Interpolated Strings: Used to construct strings. An interpolated string looks like a template string that contains interpolated expressions. An interpolated string returns a string that replaces the interpolated expressions that it contains with their string representations. This feature is available in C# 6 and later versions.

string commentor = $"<span class=\"fa fa-plus\" aria-hidden=\"true\"> {variable}</span>";
x19
  • 7,609
  • 13
  • 56
  • 119
3

If you want to add double quotes to a string that contains dynamic values also. For the same in place of CodeId[i] and CodeName[i] you can put your dynamic values.

data = "Test ID=" + "\"" + CodeId[i] + "\"" + " Name=" + "\"" + CodeName[i] + "\"" + " Type=\"Test\";
Inder
  • 3,521
  • 8
  • 25
  • 38
2

You could use &quot; instead of ". It will be displayed correctly by the browser.

Jens
  • 24,655
  • 6
  • 74
  • 116
  • Nope doesn't work asp.net, c# vs2013 no matter how i code if you look and the page source " and ' are always displayed. I'm using `Attributes.Add(...' – djack109 May 18 '16 at 17:49
1

In C# you can use:

 string1 = @"Your ""Text"" Here";
 string2 = "Your \"Text\" Here";
CubeJockey
  • 2,201
  • 8
  • 23
  • 31
Shivam Mishra
  • 291
  • 2
  • 11
1

Use either

&dquo;
<div>&dquo;"+ title +@"&dquo;</div>

or escape the double quote:

\"
<div>\""+ title +@"\"</div>
graham
  • 946
  • 5
  • 16
1
string doubleQuotedPath = string.Format(@"""{0}""",path);
Fruchtzwerg
  • 9,895
  • 12
  • 39
  • 45
Sunil Kumar
  • 111
  • 1
  • 5
1

An indirect, but simple to understand alternative to add quotes at start and end of string -

char quote = '"';

string modifiedString = quote + "Original String" + quote;
0

Put a backslash (\) before the double quotes. That should work.

Belinda
  • 1,238
  • 2
  • 14
  • 25
0

In C#, if we use "" it means that it will indicate the following symbol is not a C# built-in symbol that will used by the developer.

So in a string we need double quotes, meaning we can put "" symbol before double quotes:

string s = "\"Hi\""
Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
Malathi Mals
  • 73
  • 12
0

"<i class=\"fa fa-check-circle\"></i>" is used with ternary operator with Eval() data binding:

Text = '<%# Eval("bqtStatus").ToString()=="Verified" ? 
       Convert.ToString("<i class=\"fa fa-check-circle\"></i>") : 
       Convert.ToString("<i class=\"fa fa-info-circle\"></i>"
stefan
  • 4,906
  • 12
  • 47
  • 82
0

If you want to add double quotes in HTML

echo "<p>Congratulations, &#8220;" . $variable . "&#8221;!</p>";

Output

Congratulations, "Mr John"!
Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
Yogesh Sarvaiya
  • 543
  • 6
  • 16
  • `echo`? String concatenation with operator `.`? That looks like [PHP](https://en.wikipedia.org/wiki/PHP). How does that answer the question? This question is tagged with [C#](https://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29). – Peter Mortensen Aug 14 '21 at 21:00
0

Start each row with "-" to create a bullet list.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
Keshav Gera
  • 9,806
  • 1
  • 67
  • 48