Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1667
  • Last Modified:

Function to Replace Certain UNICODE chars

I need a function to replace the unicode quotes from a string to standard quotes (") and also unicode single quotes.  Here is how I might have done it in ASP:

<%
' convert all types of single quotes
tmpString = replace(tmpString, chr(145), chr(39))
tmpString = replace(tmpString, chr(146), chr(39))

' convert all types of double quotes
tmpString = replace(tmpString, chr(147), chr(34))
tmpString = replace(tmpString, chr(148), chr(34))
%>

How can I do this in C#/ASP.NET?
0
hendridm
Asked:
hendridm
  • 4
  • 3
1 Solution
 
Justin_WCommented:
Since C# is case-sensitive, use this:
   ' convert all types of single quotes
   tmpString = tmpString.Replace(Chr(145), Chr(39));
   tmpString = tmpString.Replace(Chr(146), Chr(39));

   ' convert all types of double quotes
   tmpString = tmpString.Replace(Chr(147), Chr(34));
   tmpString = tmpString.Replace(Chr(148), Chr(34));

Note that since the Chr function is a VB function, you might have to also include something like this:
   using Mucrosoft.VisualBasic;
0
 
Justin_WCommented:
I meant:
   using Microsoft.VisualBasic;
0
 
hendridmAuthor Commented:
Is there a native C# way to do it?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Justin_WCommented:
Sure.  You can declare Char variables like this:
   char MyChar = 'X';        // Character literal
   char MyChar = '\x0058';   // Hexadecimal
   char MyChar = (char)88;   // Cast from integral type
   char MyChar = '\u0058';   // Unicode

E.g., if your Char variables are called c34, c39, and c145-c148, then do:
   ' convert all types of single quotes
   tmpString = tmpString.Replace(c145, c39);
   tmpString = tmpString.Replace(c146, c39);

   ' convert all types of double quotes
   tmpString = tmpString.Replace(c147, c34);
   tmpString = tmpString.Replace(c148, c34);
0
 
hendridmAuthor Commented:
I can't figure out the code for “ and ”.

I tried \u0147 but it displays some funky character.
Response.Write("\u0147");

Where can I find the codes?  I tried Google w/o success.
0
 
hendridmAuthor Commented:
nm, I found them here:
http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html

Thanks...
0
 
hendridmAuthor Commented:
For the record, in case someone else stumbles across this PAQ in the future, here is eventually what I used:

    private string StipUnicode(string s)
    {
      // convert all types of single quotes
      s=s.Replace("\u2018", "&#39;"); // left single quotation mark
      s=s.Replace("\u2019", "&#39;"); // right single quotation mark
      s=s.Replace("'", "&#39;"); // single quotes

      // convert all types of double quotes
      s=s.Replace("\u201C", "&quot;"); // left double quotation mark
      s=s.Replace("\u201D", "&quot;"); // right double quotation mark
      
      //replace carriage returns & line feeds
      s=s.Replace("\n", "");
      s=s.Replace("\r", "");
      
      return s.Trim();
    }
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now