2016-01-04 2 views
0

Когда я пытаюсь вытащить значение emoji из базы данных с помощью VB.net, emoji отображается как '??'Когда я пытаюсь вывести значение столбца nvarchar, в котором хранится emojis, данные в VB.net отображаются как '??'

Есть ли какое-то преобразование, которое мне нужно сделать в моей хранимой процедуре?

+0

Какая версия Windows, вы протестировали его на? Windows 7 не поддерживает полную поддержку emoji. Чтобы получить базовую поддержку в этой системе, вам необходимо использовать шрифт, который включает в себя символы символов, такие как шрифт шрифта Segoe UI Symbol. –

ответ

0
Private Function DisplayEmoji(input As String) As String 
    Dim output As New StringBuilder() 
    Dim enumerator = StringInfo.GetTextElementEnumerator(input) 
    While enumerator.MoveNext() 
     Dim chunk As String = enumerator.GetTextElement() 
     If Char.IsSurrogatePair(chunk, 0) Then 
      output.Append("<img src=""" + "https://abs.twimg.com/emoji/v1/72x72/" + Char.ConvertToUtf32(chunk, 0).ToString("x") + ".png"" style=""height:1.5em; width:1.5em;"">") 
     Else 
      output.Append(chunk) 
     End If 
    End While 
    Return output.ToString() 
End Function 

Или вставьте свое изображение Blob type и прочитайте sql.

Dim filePath As String = Server.MapPath("APP_DATA/test.png") 
Dim filename As String = Path.GetFileName(filePath) 

Dim fs As FileStream = New FileStream(filePath, FileMode.Open, FileAccess.Read) 
Dim br As BinaryReader = New BinaryReader(fs) 
Dim bytes As Byte() = br.ReadBytes(Convert.ToInt32(fs.Length)) 
br.Close() 
fs.Close() 

Вставка для базы данных йор изображения

Dim strQuery As String = "insert into tblFiles(Name, ContentType, Data) values (@Name, @ContentType, @Data)" 
Dim cmd As SqlCommand = New SqlCommand(strQuery) 
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename 
cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value = "image/png" 
cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes 
InsertUpdateData(cmd) 

InsertUpdateData

Public Function InsertUpdateData(ByVal cmd As SqlCommand) As Boolean 
    Dim strConnString As String = System.Configuration. 
    ConfigurationManager.ConnectionStrings("conString").ConnectionString 
    Dim con As New SqlConnection(strConnString) 
    cmd.CommandType = CommandType.Text 
    cmd.Connection = con 
    Try 
     con.Open() 
     cmd.ExecuteNonQuery() 
     Return True 
    Catch ex As Exception 
     Response.Write(ex.Message) 
     Return False 
    Finally 
     con.Close() 
     con.Dispose() 
    End Try 
End Function 
+0

Используя образы, вы должны помнить о доступности и добавить некоторый текст, который указывает, что такое каждое изображение. –

Смежные вопросы