We are using a SQL Server database and C++, and we have several inquiries about the issues we are currently facing.
Here's some information about our situation:
- Chinese_Taiwan_Stroke_CI_ASis being used as collation in the database
- In a stored procedure, VARCHAR(200)is used as a parameter
- The server calls Aprocedure, and it passes Unicode(UTF-8) to theVARCHARparameter
Due to this, data corruption occurs when a value is stored in the database. So far, we have understood up to this part.
These are the results we obtained after the tests we did
- String that is broken after it being delivered to the server is 韓國人學台語.
- If we check the OUTPUT with SELECT '韓國人學台語' COLLATE Chinese_Taiwan_Stroke_CI_AS, the string comes out normally without being broken.
- Also, when SQL Server directly calls Aprocedure and sends韓國人學台語to the parameter, the data is normally displayed.
This is the inquiry we want to ask: when you store Unicode value in VARCHAR, it appears that the results are shown differently when you store the data through the server and when you save it through running T-SQL query directly.  
We need your explanation about this part.
--------------------------------------------------Edit!
I am using a translator. i look forward to your understanding.,_,)
I am careful to raise problem the stored procedure and the schema of the table uploaded.
I have read many replies with thanks,
if i using unicode, I understood if not using approciate Collation-Rule, we need using NVARCHAR.
As ZLK said, we believe there is a problem with the way the server delivers it. We'll look further and we'll leave a message as soon as we know the cause.
Thank you for your reply.
 
    