From what you describe, it seems you have UTF-8 data that was originally stored as Latin-1 and then not converted correctly to UTF-8. The data is recoverable; you'll need a MySQL function like
convert(cast(convert(name using latin1) as binary) using utf8)
It's possible that you may need to omit the inner conversion, depending on how the data was altered during the encoding conversion.
"Could someone explain, or point me to some sort of explanation, of what R-Value is? I'm not really sure what it is"
The term lvalue originally referred to an expression that could be the left hand side of an assignment. Correspondingly, an rvalue (although as I recall that term was not used by the C89 standard), was originally just the opposite: an expression that could not be the left hand side of an assignment, but that could only be the right hand side.
C++11 complicated this by adding several more nuanced terms, but let's concentrate on the C++03 meanings.
For example, if you have
int x;
then the assignment x = 42
is OK, so x
is an lvalue expression.
As a counter-example, the assigment x+0 = 42
is not OK, so x+0
is an rvalue expression.
And so is the expression 2+2
, it's an rvalue expression.
So, if the requirement is that your program should include an rvalue, then just write 2+2
or e.g. (more advanced) 6*7
, in main
.
Original C didn't have const
. In C++, with const
, you have to disregard the const
for the purpose of designating an expression as lvalue or rvalue. The critical point is then whether the expression guaranteed refers to an object in memory, an object with an address: if so, then the expression is an lvalue.
A reference type implies lvalue, because an expression of reference type is necessarily referring to an object with a memory address, i.e. that expression is an lvalue.
However, other than references there's no connection between type and lvalue/rvalue. For example, both x
and x+0
are expressions of type int
, and they yield the same int
value. But the former is an lvalue expression, while the latter is an rvalue expression.
As a general rule, if you can apply the built-in address operator, then it's an lvalue expression, and otherwise it's an rvalue expression.
Best Answer
Turns out the script reference that was before the meta description was causing the problem. I moved
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
to be the first item after the opening head tag and this is no longer an issue. Thanks for all the comments..P.S I wasn't the one who code this page, and only working on localizing it, thats why I didn't even think that meta tag being after script would even make a difference...