|
|
|
ขอทราบวิธี upload file ภาษาไทยไปยัง server window form |
|
|
|
|
|
|
|
upload file ใน window form ไปยังserver ตอนนี้ทำแบบส่งไฟล์ผ่านsocket แต่มีปัญหาคือ upload ไฟล์ ที่มีชื่อเป็นภาษาไทย เวลาอัพโหลดไฟล์เอกสารที่มีชื่อเป็นภาษาไทย พอไปเก็บใน folder server มันมาไม่ครบ จาก "ดอกบัว.jpg"กลายเป็น"ดอก�" แต่ถ้าเป็นภาษาอังกฤษจะมาครบไม่ปัญหา
นี่เป็นโค้ดฝั่งserver บางส่วนค่ะ
Code (C#)
private string ConvertAsciiToUnicode(string theAsciiString)
{
// Create two different encodings.
Encoding aAsciiEncoding = Encoding.ASCII;
Encoding aUnicodeEncoding = Encoding.UTF8;
// Convert the string into a byte[].
byte[] aAsciiBytes = aAsciiEncoding.GetBytes(theAsciiString);
// Perform the conversion from one encoding to the other.
byte[] aUnicodeBytes = Encoding.Convert(aAsciiEncoding, aUnicodeEncoding,
aAsciiBytes);
// Convert the new byte[] into a char[] and then into a string.
char[] aUnicodeChars = new
char[aUnicodeEncoding.GetCharCount(aUnicodeBytes, 0, aUnicodeBytes.Length)];
aUnicodeEncoding.GetChars(aUnicodeBytes, 0, aUnicodeBytes.Length,
aUnicodeChars, 0);
string aUnicodeString = new string(aUnicodeChars);
return aUnicodeString;
}
private void ReadDataFromClient(object clientObject)
{
Socket clientSock = null;
BinaryWriter bWriter = null;
string fileName = "";
try
{
SyncSocketServerMulClient.status = "";
SyncSocketServerMulClient.presentOperation = "";
clientSock = (Socket)clientObject;
bool flag = true;
Console.WriteLine("New connection estublished. Socket {0}", clientSock.GetHashCode());
int totalDataLen, receivedLen, fileNameLen, fileContentStartIndex;
byte[] data = new byte[bufferSize];
currentStatus = presentOperation = "Data Receiving";
int len = clientSock.Receive(data);
if (len == 0)
{
clientSock.Close();
return;
}
if (len == 3)
{
string clientData = Encoding.UTF8.GetString(data);
if (clientData.Substring(0, len) == "END")
return;
}
totalDataLen = BitConverter.ToInt32(data, 0);
fileNameLen = BitConverter.ToInt32(data, 4);
Encoding aUnicodeEncoding = Encoding.UTF8;
char[] aUnicodeChars = new char[aUnicodeEncoding.GetCharCount(data, 8, fileNameLen)];
aUnicodeEncoding.GetChars(data, 8, fileNameLen, aUnicodeChars, 0);
string aUnicodeString = new string(aUnicodeChars);
string s = Encoding.UTF7.GetString(data, 8, fileNameLen);
fileName = aUnicodeString;
fileContentStartIndex = 4 + 4 + fileNameLen;
receivedLen = len - fileContentStartIndex;
//READ DATA & STORE OF FIRST PACKET
Tag : .NET, Ms SQL Server 2005, Win (Windows App), C#
|
|
|
|
|
|
Date :
2010-12-13 15:20:21 |
By :
newbry |
View :
1463 |
Reply :
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|