Hi, I'm confused. What is the special about character with ascii code 160?
I'll explain:

I've got ASE with default character set roman8. I log in from client using character set roman8. I enter following query:

Code:
1> create table #aaa (a varchar(10))
2> go
1> insert #aaa values (char(160))
2> go
(1 row affected)
1> select a,ascii(a) from #aaa
2> go
 a
 ---------- -----------
                    160

(1 row affected)

Which looks ok because ascii(160) is non-breakable space

If I log in from client using iso_1 character set I will get following:
Code:
1>create table #aaa (a varchar(10))
2> go
1> 
2> insert #aaa values (char(160))
3> go
(1 row affected)
1>
2>
3> select a,ascii(a) from #aaa
4> go
 a
 ---------- -----------
 ?                  160

WARNING!  Some character(s) could not be converted into client's character set.  Unconverted bytes were changed to question marks ('?').

(1 row affected)
But why? Iso_1 and roman8 both (according to what I investigated) contain 160 as non-breakable space...

Second point:

I'm definetly using roman8 for client and for ASE.
When I enter this:

Code:
1> insert #aaa values (char(161))
2> go
Then I get this:

Code:
1> select a,ascii(a) from #aaa
2> go
 a
 ---------- -----------
                    161

(2 rows affected)
Why? roman8 interpretation of ascii 161 is
The character "" is 161 in iso_1 ...