public static CharacterSet GetChararcterSet(DBVersion version, string CharSetName) { CharacterSet cs = (CharacterSet)mapping[CharSetName]; if (cs == null) { throw new MySqlException("Character set '" + CharSetName + "' is not supported"); } return(cs); }
/// <summary> /// Returns the text encoding for a given MySQL character set name /// </summary> /// <param name="version">Version of the connection requesting the encoding</param> /// <param name="CharSetName">Name of the character set to get the encoding for</param> /// <returns>Encoding object for the given character set name</returns> public static Encoding GetEncoding(DBVersion version, string CharSetName) { try { CharacterSet cs = GetCharacterSet(version, CharSetName); return(Encoding.GetEncoding(cs.name)); } catch (NotSupportedException) { return(Encoding.GetEncoding("utf-8")); } }
public static CharacterSet GetCharacterSet(DBVersion version, string CharSetName) { CharacterSet cs = null; if (mapping.ContainsKey(CharSetName)) { cs = (CharacterSet)mapping[CharSetName]; } if (cs == null) { throw new MySqlException("Character set '" + CharSetName + "' is not supported by .Net Framework."); } return(cs); }
private MySqlField GetFieldMetaData41() { MySqlField field = new MySqlField(connection); stream.OpenPacket(); field.Encoding = encoding; field.CatalogName = stream.ReadLenString(); field.DatabaseName = stream.ReadLenString(); field.TableName = stream.ReadLenString(); field.RealTableName = stream.ReadLenString(); field.ColumnName = stream.ReadLenString(); field.OriginalColumnName = stream.ReadLenString(); stream.ReadByte(); field.CharacterSetIndex = stream.ReadInteger(2); field.ColumnLength = stream.ReadInteger(4); MySqlDbType type = (MySqlDbType)stream.ReadByte(); ColumnFlags colFlags; if ((Flags & ClientFlags.LONG_FLAG) != 0) { colFlags = (ColumnFlags)stream.ReadInteger(2); } else { colFlags = (ColumnFlags)stream.ReadByte(); } field.SetTypeAndFlags(type, colFlags); field.Scale = (byte)stream.ReadByte(); if (stream.HasMoreData) { stream.ReadInteger(2); // reserved } if (charSets != null && field.CharacterSetIndex != -1) { CharacterSet cs = CharSetMap.GetChararcterSet(Version, (string)charSets[field.CharacterSetIndex]); field.MaxLength = cs.byteCount; field.Encoding = CharSetMap.GetEncoding(version, (string)charSets[field.CharacterSetIndex]); } return(field); }
private void SetFieldEncoding() { Dictionary <int, string> charSets = driver.CharacterSets; DBVersion version = driver.Version; if (charSets == null || charSets.Count == 0 || CharacterSetIndex == -1) { return; } if (charSets[CharacterSetIndex] == null) { return; } CharacterSet cs = CharSetMap.GetCharacterSet(version, (string)charSets[CharacterSetIndex]); MaxLength = cs.byteCount; Encoding = CharSetMap.GetEncoding(version, (string)charSets[CharacterSetIndex]); }