Help in TR command

Can someone please explain what's wrong with the command i use below?

tr -c '\11\12\40-\176' ' '< $TEMP_FILE > $TEMP_FILE2

The invalid character/s is replaced with two spaces, the string2 only have 1 space in it. Please help.

Sample output:

333243,333244c333243,333244
<                               <prof-address-1>H�TTENSTRASSE 17</prof-address-1>
<                               <prof-city>D�SSELDORF</prof-city>
---
>                               <prof-address-1>H  TTENSTRASSE 17</prof-address-1>
>                               <prof-city>D  SSELDORF</prof-city>

i guess,there is a an extra character under "�" symbol while evaluate and translate that ascii character(s) converts to extd ascii (these are extended chars in ansi (ext ascii chrs.)
/* i assume default encoding is utf-8 */

lets try on ex file

# od -c infile
0000000   <   p   r   o   f   -   a   d   d   r   e   s   s   -   1   >
0000020   H 302 232   T   T   E   N   S   T   R   A   S   S   E       1
0000040   7   <   /   p   r   o   f   -   a   d   d   r   e   s   s   -
0000060   1   >  \n   <

so your shell see its like (302+232),that is to say,some strings(like extd ascii) are represented by multibyte characters..
and some characters (like some control (or extd) chars are non-printable.)

in there, actually,to ascii table below char is..

### �	-> 232 (oct) in extendend ascii table 
# echo -e "\0232"
          -> does not look anychar(s)

actually there is an extra one byte! (i guess this char defines that is a ex chrs)

### lets try for view as utf-8 encoding ( conv 8859-1 to utf-8)
# echo -e "\0232"|iconv -f latin1 -t utf-8
�

and tr command always assumes that one character is represented as one byte.therefore \232 and \302 equals to $((one space + one space))

# echo -e "\0302"
�   -> its an extend-A chr where defined in C2 set

finally , if you try like this then output has only a space..(for remove cntrl char with space,,and \232 is already non-printable)

# tr -c '\11\12\232\40-\176' ' ' <infile

regards
ygemici