MySQL and Unicode Daniël van Eeden Percona Live Amsterdam 23 September 2015

Size: px
Start display at page:

Download "MySQL and Unicode Daniël van Eeden Percona Live Amsterdam 23 September 2015"

Transcription

1 MySQL and Unicode Daniël van Eeden Percona Live Amsterdam 23 September 2015

2 Booking.com is available in more than 40 languages So Unicode is important to us.

3

4 Also my name is Daniël, not Daniel

5 Also my name is Daniël, not Daniël

6 First some history

7 ASCII

8 Encodes characters as 7-bit

9 The 8 th bit can be used as parity, but that was never common.

10 The 3568 ASCII astroid is named after it.

11 ISO-8859

12 Uses the extra bit to be able to store a second set of 127 characters

13 The base characters (<127) are shared between ASCII and ISO-8859-?

14 The other characters differ per country/region

15 Windows-1252 (CP1252) is mostly identical with ISO

16 ISO is also known as Latin1

17 Latin1 in MySQL is not ISO , but CP1252.

18 Unicode

19 Allows you to store text in any language

20 Allows you to store text combining multiple languages in the same file

21 Each character gets a number (a.k.a. code point) and a description.

22 That doesn't guarantee your font will display it.

23 UTF-8

24 This is an character encoding for unicode.

25 This translates from code points to a binary string.

26 UTF-8 and ASCII share the same characters for 0<127.

27 Non-ASCII characters are stored as 2, 3 or 4-bytes.

28 UTF-32 UTF-16 UTF-8 ISO ASCII Baudot

29 If a byte starts with '0xxxxxxx' then it is a 1-byte character

30 If a byte starts with '110' it is a start of a 2- byte character.

31 If a byte starts with '10' then it is a continuation of a multibyte character.

32 If a byte starts with '1110' it is the start of a 3-byte character.

33 If a byte starts with '11110' it is the start of a 4-byte character.

34 Examples: a = ë =

35 UTF-8 And MySQL

36 Some reasons to use UTF-8 in MySQL

37 Non-english scripts like Chinese, Cyrillic or Greek.

38 Emoji (including in the help text of your mobile app)

39 utf8 in MySQL is an alias for utf8mb3

40 utf8mb3 can store 3-byte UTF-8

41 utf8mb4 can store 4-byte UTF-8

42 Best practice: Always use utf8mb4, don't use utf8

43 Where to set the encoding?

44 It is set on a per-column basis

45 There is a per-table default

46 There is a per-database default

47 There is a per-server default: character_set_server

48 Connections also have a character set

49 Drawbacks of UTF-8

50 So just set everything to utf8mb4?

51 It depends

52 Does your application support it?

53 CHAR(10) suddenly needs 40 bytes!

54 TINYTEXT has a size limit in bytes

55 The MEMORY storage engine expands VARCHAR(10) to 40 bytes

56 With InnoDB your index grows over 767 bytes.

57 Best practice: Use latin1 for server, database and table default. Enable Unicode on columns which need it.

58 Converting your data

59 How to convert from latin1 to utf8mb4?

60 ALTER TABLE t1 MODIFY COLUMN c1 VARCHAR(100) CHARACTER SET utf8mb4;

61 But I have many columns!

62 Use CONCAT() and information_schema to generate the statements

63 Or convert all columns: ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4;

64 Change defaults

65 Set character_set_server

66 ALTER SCHEMA s1 DEFAULT CHARACTER SET utf8mb4;

67 ALTER TABLE t1 DEFAULT CHARACTER SET utf8mb4;

68 Common failures

69 Application looks okay, but in MySQL the data looks wrong

70 The latin1 column was holding utf8 data already

71 Wrong conversion == garbage

72 Change column to varbinary and then to utf8mb4 to not convert the data.

73 The conversion fails and eats your data

74 Use sql_mode='strict_all_tables'

75 Now the operation will fail instead of truncate your data

76 Connection set to utf8, but data is 4-byte UTF-8.

77 Collation support There is no utf8mb4_general_cs (case sensitive) There is utf8mb4_unicode_ci And utf8mb4_unicode_520_ci And utf8mb4_bin

78

79 Special collations get lost during conversion

80 ALTER TABLE CONVERT TO only supports one collation

81 Safe collation before the ALTER and then restore it for columns which have a nondefault collation.

82 Collation mismatch

83

84 Use COLLATE to set the desired collation for the operation.

85

86 é and + e are not identical

87 Unicode normalization forms NFC Composed NFD Decomposed NFKC Composed NFKD Decomposed NFK removes compatibility distinction and will lose information. But this is useful for search etc.

88 Best practice: Normalize strings in your application

89 4-byte characters get silently lost on dump/restore

90 Set utf8mb4 as default charset for the connection mysqldump uses

91

92

93

94 Did you know a BOM can be in the middle of a string?

95 Fulltext search & CJK

96 Not every character has the same width

97 Not even if we use a monospace font

98 A character can have a width of 0, 1, 2 or -1 positions

99 Punycode

100 Ligatures, Glyphs, Characters

101 Using Unicode

102 Fonts

103 Typing

104 Virtual keyboards

105 Control characters

106 Charset is not a constraint

107 Replacement characters

108 MySQL and Unicode Daniël van Eeden Percona Live Amsterdam 23 September 2015 Welcome. My name is Daniël and I work for Booking.com This presentation is about MySQL and Unicode.

109 Booking.com is available in more than 40 languages So Unicode is important to us. Booking.com is available in more that 40 languages so Unicode is of critical importance to us

110 This is the booking.com website in Arabic Note that the text is also flowing from right to left

111 Also my name is Daniël, not Daniel My name is Daniël. There are dots on the 'e'. Those are important to me.

112 Also my name is Daniël, not Daniël The image here shows examples from letters I got in the mail. This happens quite often. Also on websites. Marking every special character as illegal is not a solution.

113 First some history Let's first start with some history about character sets

114 Before ASCII: baudot (5-bit, 1870) ASCII Let's start with ASCII. ASCII was invented in 1963 to allow comunication between systems of different vendors. A little known fact is that ASCII was not made for computers, but for teleprinters. One of the interesting decisions of ASCII was that it does not require state. It does not encode the 'shift'

115 Encodes characters as 7-bit In ASCII 1 character equals 1 byte.

116 The 8 th bit can be used as parity, but that was never common.

117 The 3568 ASCII astroid is named after it. Fun fact

118 ISO-8859 ISO-8859 was created in 1985 and is a set of 16 character sets. The most known one is ISO This included more than just english When the euro was introduced they replaced with and named it ISO

119 Uses the extra bit to be able to store a second set of 127 characters ISO-8859 Replaces ISO 646 (1972) which was a 7-bit mess. ECMA, the European Computer Manufacturers Association

120 The base characters (<127) are shared between ASCII and ISO-8859-? The base characters are shared between ASCII and ISO-8859

121 The other characters differ per country/region

122 Windows-1252 (CP1252) is mostly identical with ISO

123 ISO is also known as Latin1

124 Latin1 in MySQL is not ISO , but CP1252. mysql> SHOW CHARSET LIKE 'latin1'; Charset Description Default collation Maxlen latin1 cp1252 West European latin1_swedish_ci row in set (0.00 sec)

125 Unicode The work on Unicode started in 1987

126 Allows you to store text in any language Both alive and dead

127 Allows you to store text combining multiple languages in the same file

128 Each character gets a number (a.k.a. code point) and a description.

129 That doesn't guarantee your font will display it. You might see a replacement character instead. This can be a question mark or some square.

130 UTF-8 Unicode Transformation Format

131 This is an character encoding for unicode. It is not the only unicode enconding. UTF-16 (fixed: ucs2) UTF-32 (ucs4)

132 This translates from code points to a binary string.

133 UTF-8 and ASCII share the same characters for 0<127.

134 Non-ASCII characters are stored as 2, 3 or 4-bytes.

135 UTF-32 UTF-16 UTF-8 ISO ASCII Baudot Here you can see the minimum and maximum number of bytes required to store one character. The blue show minimum and the red shows the variable part. This shows that UTF-8 is efficient in terms of storage for latin scripts

136 If a byte starts with '0xxxxxxx' then it is a 1-byte character

137 If a byte starts with '110' it is a start of a 2- byte character.

138 If a byte starts with '10' then it is a continuation of a multibyte character.

139 If a byte starts with '1110' it is the start of a 3-byte character.

140 If a byte starts with '11110' it is the start of a 4-byte character.

141 Examples: a = ë = Here you can see the letter a and the letter e with the dots (diaeresis, trema)

142 UTF-8 And MySQL Now we get into MySQL specifics

143 Some reasons to use UTF-8 in MySQL

144 Non-english scripts like Chinese, Cyrillic or Greek. Names Comments URL's addresses

145 Emoji (including in the help text of your mobile app) Hamburger icon

146 utf8 in MySQL is an alias for utf8mb3

147 utf8mb3 can store 3-byte UTF-8

148 utf8mb4 can store 4-byte UTF-8 utf8mb4 exists since 5.5.3

149 Best practice: Always use utf8mb4, don't use utf8

150 Where to set the encoding?

151 It is set on a per-column basis

152 There is a per-table default

153 There is a per-database default Stored in db.opt Use ALTER DATABASE to change it

154 There is a per-server default: character_set_server

155 Connections also have a character set Set the character set in your connection properties If that isn't possible: Use SET NAMES utf8mb4

156 Drawbacks of UTF-8

157 So just set everything to utf8mb4? The question we want to answer is...

158 It depends The answer is...

159 Does your application support it? Input validation Character length Security

160 CHAR(10) suddenly needs 40 bytes!

161 TINYTEXT has a size limit in bytes With utf8m4 you can store between 63 and 255 characters. This also happens to other TEXT types and BLOB types

162 The MEMORY storage engine expands VARCHAR(10) to 40 bytes This affects: - User created tables - Internal temporary tables

163 With InnoDB your index grows over 767 bytes. Use innodb_large_prefex with COMPRESSED or DYNAMIC

164 Best practice: Use latin1 for server, database and table default. Enable Unicode on columns which need it. Or use utf8mb4 all the way if you don't need the efficiency and performance of latin1 Changing everything to VARBINARY and BLOB will not solve your issue.

165 Converting your data

166 How to convert from latin1 to utf8mb4?

167 ALTER TABLE t1 MODIFY COLUMN c1 VARCHAR(100) CHARACTER SET utf8mb4;

168 But I have many columns!

169 Use CONCAT() and information_schema to generate the statements

170 Or convert all columns: ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4; Also for INSERTs!

171 Change defaults

172 Set character_set_server

173 ALTER SCHEMA s1 DEFAULT CHARACTER SET utf8mb4;

174 ALTER TABLE t1 DEFAULT CHARACTER SET utf8mb4;

175 Common failures

176 Application looks okay, but in MySQL the data looks wrong 'Search' in the application might not function correctly

177 The latin1 column was holding utf8 data already

178 Wrong conversion == garbage Don't just convert this data. Run a latin1 to UTF-8 conversion on data which already was UTF-8 will result in garbage.

179 Change column to varbinary and then to utf8mb4 to not convert the data.

180 The conversion fails and eats your data MySQL tries really hard to convert your data but this might not be possible.

181 Use sql_mode='strict_all_tables'

182 Now the operation will fail instead of truncate your data Also for inserts

183 Connection set to utf8, but data is 4-byte UTF-8. You can't insert 4-byte or request 4- byte characters

184 Collation support There is no utf8mb4_general_cs (case sensitive) There is utf8mb4_unicode_ci And utf8mb4_unicode_520_ci And utf8mb4_bin unicode_ci = UCA Unicode_520 UCA Latest 8.0.0

185 Here we compare the sun and moon emoji.

186 Special collations get lost during conversion Collation = Sorting & Equality

187 ALTER TABLE CONVERT TO only supports one collation

188 Safe collation before the ALTER and then restore it for columns which have a nondefault collation.

189 Collation mismatch

190 Here MySQL does not now which collation to use.

191 Use COLLATE to set the desired collation for the operation.

192

193 é and + e are not identical Combining characters

194 Unicode normalization forms NFC Composed NFD Decomposed NFKC Composed NFKD Decomposed NFK removes compatibility distinction and will lose information. But this is useful for search etc.

195 Best practice: Normalize strings in your application

196 4-byte characters get silently lost on dump/restore

197 Set utf8mb4 as default charset for the connection mysqldump uses

198 This shows what we can do with a patched mysql client. This uses unicode drawing characters

199 This shows the unicode character database imported into MySQL

200

201 Did you know a BOM can be in the middle of a string? Also MySQL doesn't handle BOM's well

202 Fulltext search & CJK

203 Not every character has the same width

204 Not even if we use a monospace font

205 A character can have a width of 0, 1, 2 or -1 positions

206 Punycode

207 Ligatures, Glyphs, Characters

208 Using Unicode

209 Fonts

210 Typing

211 Virtual keyboards

212 Control characters

213 Charset is not a constraint

214 Replacement characters

Database Migration from MySQL to RDM Server

Database Migration from MySQL to RDM Server MIGRATION GUIDE Database Migration from MySQL to RDM Server A Birdstep Technology, Inc. Raima Embedded Database Division Migration Guide Published: May, 2009 Author: Daigoro F. Toyama Senior Software Engineer

More information

Unicode Enabling Java Web Applications

Unicode Enabling Java Web Applications Internationalization Report: Unicode Enabling Java Web Applications From Browser to DB Provided by: LingoPort, Inc. 1734 Sumac Avenue Boulder, Colorado 80304 Tel: +1.303.444.8020 Fax: +1.303.484.2447 http://www.lingoport.com

More information

How To Write A Domain Name In Unix (Unicode) On A Pc Or Mac (Windows) On An Ipo (Windows 7) On Pc Or Ipo 8.5 (Windows 8) On Your Pc Or Pc (Windows

How To Write A Domain Name In Unix (Unicode) On A Pc Or Mac (Windows) On An Ipo (Windows 7) On Pc Or Ipo 8.5 (Windows 8) On Your Pc Or Pc (Windows IDN TECHNICAL SPECIFICATION February 3rd, 2012 1 IDN technical specifications - Version 1.0 - February 3rd, 2012 IDN TECHNICAL SPECIFICATION February 3rd, 2012 2 Table of content 1. Foreword...3 1.1. Reference

More information

MS ACCESS DATABASE DATA TYPES

MS ACCESS DATABASE DATA TYPES MS ACCESS DATABASE DATA TYPES Data Type Use For Size Text Memo Number Text or combinations of text and numbers, such as addresses. Also numbers that do not require calculations, such as phone numbers,

More information

Internationalizing the Domain Name System. Šimon Hochla, Anisa Azis, Fara Nabilla

Internationalizing the Domain Name System. Šimon Hochla, Anisa Azis, Fara Nabilla Internationalizing the Domain Name System Šimon Hochla, Anisa Azis, Fara Nabilla Internationalize Internet Master in Innovation and Research in Informatics problematic of using non-ascii characters ease

More information

MySQL Storage Engines

MySQL Storage Engines MySQL Storage Engines Data in MySQL is stored in files (or memory) using a variety of different techniques. Each of these techniques employs different storage mechanisms, indexing facilities, locking levels

More information

Oracle Database 11g Express Edition PL/SQL and Database Administration Concepts -II

Oracle Database 11g Express Edition PL/SQL and Database Administration Concepts -II Oracle Database 11g Express Edition PL/SQL and Database Administration Concepts -II Slide 1: Hello and welcome back to the second part of this online, self-paced course titled Oracle Database 11g Express

More information

Product Internationalization of a Document Management System

Product Internationalization of a Document Management System Case Study Product Internationalization of a ì THE CUSTOMER A US-based provider of proprietary Legal s and Archiving solutions, with a customizable document management framework. The customer s DMS was

More information

Part 3. MySQL DBA I Exam

Part 3. MySQL DBA I Exam Part 3. MySQL DBA I Exam Table of Contents 23. MySQL Architecture... 3 24. Starting, Stopping, and Configuring MySQL... 6 25. Client Programs for DBA Work... 11 26. MySQL Administrator... 15 27. Character

More information

Unraveling Unicode: A Bag of Tricks for Bug Hunting

Unraveling Unicode: A Bag of Tricks for Bug Hunting Unraveling Unicode: A Bag of Tricks for Bug Hunting Black Hat USA July 2009 Chris Weber www.lookout.net chris@casabasecurity.com Casaba Security Can you tell the difference? How about now? The Transformers

More information

Multi-lingual Label Printing with Unicode

Multi-lingual Label Printing with Unicode Multi-lingual Label Printing with Unicode White Paper Version 20100716 2009 SATO CORPORATION. All rights reserved. http://www.satoworldwide.com softwaresupport@satogbs.com 2009 SATO Corporation. All rights

More information

Choosing a Data Model for Your Database

Choosing a Data Model for Your Database In This Chapter This chapter describes several issues that a database administrator (DBA) must understand to effectively plan for a database. It discusses the following topics: Choosing a data model for

More information

FileMaker 14. ODBC and JDBC Guide

FileMaker 14. ODBC and JDBC Guide FileMaker 14 ODBC and JDBC Guide 2004 2015 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and FileMaker Go are trademarks of FileMaker,

More information

Internationalized Domain Names -

Internationalized Domain Names - Internationalized Domain Names - Getting them to work Gihan Dias LK Domain Registry What is IDN? Originally DNS names were restricted to the characters a-z (letters), 0-9 (digits) and '-' (hyphen) (LDH)

More information

Preservation Handbook

Preservation Handbook Preservation Handbook Plain text Author Version 2 Date 17.08.05 Change History Martin Wynne and Stuart Yeates Written by MW 2004. Revised by SY May 2005. Revised by MW August 2005. Page 1 of 7 File: presplaintext_d2.doc

More information

Unicode Security. Software Vulnerability Testing Guide. July 2009 Casaba Security, LLC www.casabasecurity.com

Unicode Security. Software Vulnerability Testing Guide. July 2009 Casaba Security, LLC www.casabasecurity.com Unicode Security Software Vulnerability Testing Guide (DRAFT DOCUMENT this document is currently a preview in DRAFT form. Please contact me with corrections or feedback.) Software Globalization provides

More information

FileMaker 13. ODBC and JDBC Guide

FileMaker 13. ODBC and JDBC Guide FileMaker 13 ODBC and JDBC Guide 2004 2013 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker, Inc.

More information

Using SQL Server Management Studio

Using SQL Server Management Studio Using SQL Server Management Studio Microsoft SQL Server Management Studio 2005 is a graphical tool for database designer or programmer. With SQL Server Management Studio 2005 you can: Create databases

More information

Right-to-Left Language Support in EMu

Right-to-Left Language Support in EMu EMu Documentation Right-to-Left Language Support in EMu Document Version 1.1 EMu Version 4.0 www.kesoftware.com 2010 KE Software. All rights reserved. Contents SECTION 1 Overview 1 SECTION 2 Switching

More information

JasperServer Localization Guide Version 3.5

JasperServer Localization Guide Version 3.5 Version 3.5 2008 JasperSoft Corporation. All rights reserved. Printed in the U.S.A. JasperSoft, the JasperSoft logo, JasperAnalysis, JasperServer, JasperETL, JasperReports, JasperStudio, ireport, and Jasper4

More information

SQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases.

SQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases. SQL Databases Course by Applied Technology Research Center. 23 September 2015 This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases. Oracle Topics This Oracle Database: SQL

More information

Internationalization of Domain Names

Internationalization of Domain Names Internationalization of Domain Names Marc Blanchet (Marc.Blanchet@viagenie.qc.ca) Co-chair of the IETF idn working group Viagénie (http://www.viagenie.qc.ca) Do You Like Quoted Printable? If yes, then

More information

Determining your storage engine usage

Determining your storage engine usage Y ou have just inherited a production MySQL system and there is no confirmation that an existing MySQL backup strategy is in operation. What is the least you need to do? Before undertaking any backup strategy,

More information

ASCII Code. Numerous codes were invented, including Émile Baudot's code (known as Baudot

ASCII Code. Numerous codes were invented, including Émile Baudot's code (known as Baudot ASCII Code Data coding Morse code was the first code used for long-distance communication. Samuel F.B. Morse invented it in 1844. This code is made up of dots and dashes (a sort of binary code). It was

More information

DBA Tutorial Kai Voigt Senior MySQL Instructor Sun Microsystems kai@sun.com Santa Clara, April 12, 2010

DBA Tutorial Kai Voigt Senior MySQL Instructor Sun Microsystems kai@sun.com Santa Clara, April 12, 2010 DBA Tutorial Kai Voigt Senior MySQL Instructor Sun Microsystems kai@sun.com Santa Clara, April 12, 2010 Certification Details http://www.mysql.com/certification/ Registration at Conference Closed Book

More information

SQL Server An Overview

SQL Server An Overview SQL Server An Overview SQL Server Microsoft SQL Server is designed to work effectively in a number of environments: As a two-tier or multi-tier client/server database system As a desktop database system

More information

MySQL for Beginners Ed 3

MySQL for Beginners Ed 3 Oracle University Contact Us: 1.800.529.0165 MySQL for Beginners Ed 3 Duration: 4 Days What you will learn The MySQL for Beginners course helps you learn about the world's most popular open source database.

More information

FmPro Migrator - FileMaker to SQL Server

FmPro Migrator - FileMaker to SQL Server FmPro Migrator - FileMaker to SQL Server FmPro Migrator - FileMaker to SQL Server 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 FmPro Migrator - FileMaker to SQL Server Migration

More information

The Unicode Standard Version 8.0 Core Specification

The Unicode Standard Version 8.0 Core Specification The Unicode Standard Version 8.0 Core Specification To learn about the latest version of the Unicode Standard, see http://www.unicode.org/versions/latest/. Many of the designations used by manufacturers

More information

SQL. Short introduction

SQL. Short introduction SQL Short introduction 1 Overview SQL, which stands for Structured Query Language, is used to communicate with a database. Through SQL one can create, manipulate, query and delete tables and contents.

More information

How to represent characters?

How to represent characters? Copyright Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See http://software-carpentry.org/license.html for more information. How to represent characters?

More information

Chapter 4: Computer Codes

Chapter 4: Computer Codes Slide 1/30 Learning Objectives In this chapter you will learn about: Computer data Computer codes: representation of data in binary Most commonly used computer codes Collating sequence 36 Slide 2/30 Data

More information

HKSCS-2004 Support for Windows Platform

HKSCS-2004 Support for Windows Platform HKSCS-2004 Support for Windows Platform Windows XP Font Pack for ISO 10646:2003 + Amendment 1 Traditional Chinese Support (HKSCS-2004) update for Windows XP and Windows Server 2003 June 2010 Version 1.0

More information

Four ACEs. A Survey of ASCII Compatible Encodings. International Unicode Conference 22 September 2002

Four ACEs. A Survey of ASCII Compatible Encodings. International Unicode Conference 22 September 2002 Four ACEs A Survey of ASCII Compatible Encodings International Unicode Conference 22 September 2002 by Addison P. Phillips Director, Globalization Architecture c TABLE OF CONTENTS INTRODUCTION... 3 WHAT'S

More information

Database Administration with MySQL

Database Administration with MySQL Database Administration with MySQL Suitable For: Database administrators and system administrators who need to manage MySQL based services. Prerequisites: Practical knowledge of SQL Some knowledge of relational

More information

Data Integrator. Encoding Reference. Pervasive Software, Inc. 12365-B Riata Trace Parkway Austin, Texas 78727 USA

Data Integrator. Encoding Reference. Pervasive Software, Inc. 12365-B Riata Trace Parkway Austin, Texas 78727 USA Data Integrator Encoding Reference Pervasive Software, Inc. 12365-B Riata Trace Parkway Austin, Texas 78727 USA Telephone: 888.296.5969 or 512.231.6000 Fax: 512.231.6010 Email: info@pervasiveintegration.com

More information

Internationalizing JavaScript Applications Norbert Lindenberg. Norbert Lindenberg 2013. All rights reserved.

Internationalizing JavaScript Applications Norbert Lindenberg. Norbert Lindenberg 2013. All rights reserved. Internationalizing JavaScript Applications Norbert Lindenberg Norbert Lindenberg 2013. All rights reserved. Agenda Unicode support Collation Number and date/time formatting Localizable resources Message

More information

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today. & & 1 & 2 Lecture #7 2008 3 Terminology Structure & & Database server software referred to as Database Management Systems (DBMS) Database schemas describe database structure Data ordered in tables, rows

More information

SMPP protocol analysis using Wireshark (SMS)

SMPP protocol analysis using Wireshark (SMS) SMPP protocol analysis using Wireshark (SMS) Document Purpose Help analyzing SMPP traffic using Wireshark. Give hints about common caveats and oddities of the SMPP protocol and its implementations. Most

More information

This guide specifies the required and supported system elements for the application.

This guide specifies the required and supported system elements for the application. System Requirements Contents System Requirements... 2 Supported Operating Systems and Databases...2 Features with Additional Software Requirements... 2 Hardware Requirements... 4 Database Prerequisites...

More information

vtiger CRM Database UTF-8 Configuration (For MySQL)

vtiger CRM Database UTF-8 Configuration (For MySQL) vtiger CRM Database UTF-8 Configuration (For MySQL) Table of Contents 1 Introduction...3 2 MySQL UTF-8 Support...3 2.1 Server Level...3 2.2 Database Level...3 2.3 Table Level...4 2.4 Column Level...4 3

More information

MySQL+HandlerSocket=NoSQL

MySQL+HandlerSocket=NoSQL Why you need NoSQL Alternatives Meet HS HS internal working HS-MySQL interoperability Interface MySQL+HandlerSocket=NoSQL Protocol Using HS Commands Peculiarities Configuration hints Use cases @ Badoo

More information

The use of binary codes to represent characters

The use of binary codes to represent characters The use of binary codes to represent characters Teacher s Notes Lesson Plan x Length 60 mins Specification Link 2.1.4/hi Character Learning objective (a) Explain the use of binary codes to represent characters

More information

Encoding Text with a Small Alphabet

Encoding Text with a Small Alphabet Chapter 2 Encoding Text with a Small Alphabet Given the nature of the Internet, we can break the process of understanding how information is transmitted into two components. First, we have to figure out

More information

Extracting META information from Interbase/Firebird SQL (INFORMATION_SCHEMA)

Extracting META information from Interbase/Firebird SQL (INFORMATION_SCHEMA) 13 November 2007 22:30 Extracting META information from Interbase/Firebird SQL (INFORMATION_SCHEMA) By: http://www.alberton.info/firebird_sql_meta_info.html The SQL 2003 Standard introduced a new schema

More information

flask-mail Documentation

flask-mail Documentation flask-mail Documentation Release 0.9.1 Dan Jacob February 16, 2016 Contents 1 Links 3 2 Installing Flask-Mail 5 3 Configuring Flask-Mail 7 4 Sending messages 9 5 Bulk emails 11 6 Attachments 13 7 Unit

More information

XtraBackup: Hot Backups and More

XtraBackup: Hot Backups and More XtraBackup: Hot Backups and More Vadim Tkachenko Morgan Tocker http://percona.com http://mysqlperformanceblog.com MySQL CE Apr 2010 -2- Introduction Vadim Tkachenko Percona Inc, CTO and Lead of Development

More information

Java Interview Questions and Answers

Java Interview Questions and Answers 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java

More information

SQL INJECTION TUTORIAL

SQL INJECTION TUTORIAL SQL INJECTION TUTORIAL A Tutorial on my-sql Author:- Prashant a.k.a t3rm!n4t0r C0ntact:- happyterminator@gmail.com Greets to: - vinnu, b0nd, fb1h2s,anarki, Nikhil, D4Rk357, Beenu Special Greets to: - Hackers

More information

Excel 2013 Sort: Custom Sorts, Sort Levels, Changing Level & Sorting by Colored Cells

Excel 2013 Sort: Custom Sorts, Sort Levels, Changing Level & Sorting by Colored Cells Excel 2013 Sort: Custom Sorts, Sort Levels, Changing Level & Sorting by Colored Cells As you keep adding more content to a worksheet, organizing that information becomes important. You can quickly reorganize

More information

Kazuraki : Under The Hood

Kazuraki : Under The Hood Kazuraki : Under The Hood Dr. Ken Lunde Senior Computer Scientist Adobe Systems Incorporated Why Develop Kazuraki? To build excitement and awareness about OpenType Japanese fonts Kazuraki is the first

More information

Frequently Asked Questions on character sets and languages in MT and MX free format fields

Frequently Asked Questions on character sets and languages in MT and MX free format fields Frequently Asked Questions on character sets and languages in MT and MX free format fields Version Final 17 January 2008 Preface The Frequently Asked Questions (FAQs) on character sets and languages that

More information

IBM Unica emessage Version 8 Release 6 February 13, 2015. User's Guide

IBM Unica emessage Version 8 Release 6 February 13, 2015. User's Guide IBM Unica emessage Version 8 Release 6 February 13, 2015 User's Guide Note Before using this information and the product it supports, read the information in Notices on page 403. This edition applies to

More information

Data Tool Platform SQL Development Tools

Data Tool Platform SQL Development Tools Data Tool Platform SQL Development Tools ekapner Contents Setting SQL Development Preferences...5 Execution Plan View Options Preferences...5 General Preferences...5 Label Decorations Preferences...6

More information

ShoutCast v2 - Broadcasting with SAM Broadcaster

ShoutCast v2 - Broadcasting with SAM Broadcaster ShoutCast v2 - Broadcasting with SAM Broadcaster In this tutorial we are going to explain how to broadcast to our ShoutCast v2 running under CentovaCast 3 using SAM Broadcaster. Differences Between ShoutCast

More information

Linas Virbalas Continuent, Inc.

Linas Virbalas Continuent, Inc. Linas Virbalas Continuent, Inc. Heterogeneous Replication Replication between different types of DBMS / Introductions / What is Tungsten (the whole stack)? / A Word About MySQL Replication / Tungsten Replicator:

More information

XML Character Encoding and Decoding

XML Character Encoding and Decoding XML Character Encoding and Decoding January 2013 Table of Contents 1. Excellent quotes 2. Lots of character conversions taking place inside our computers and on the Web 3. Well-formedness error when encoding="..."

More information

The first thing to do is choose if you are creating a mail merge for printing or an e-mail merge for distribution over e-mail.

The first thing to do is choose if you are creating a mail merge for printing or an e-mail merge for distribution over e-mail. Create a mail or e-mail merge Use mail or e-mail merge when you want to create a large number of documents that are mostly identical but include some unique information. For example, you can use mail merge

More information

3.GETTING STARTED WITH ORACLE8i

3.GETTING STARTED WITH ORACLE8i Oracle For Beginners Page : 1 3.GETTING STARTED WITH ORACLE8i Creating a table Datatypes Displaying table definition using DESCRIBE Inserting rows into a table Selecting rows from a table Editing SQL buffer

More information

EURESCOM - P923 (Babelweb) PIR.3.1

EURESCOM - P923 (Babelweb) PIR.3.1 Multilingual text processing difficulties Malek Boualem, Jérôme Vinesse CNET, 1. Introduction Users of more and more applications now require multilingual text processing tools, including word processors,

More information

How to translate your website. An overview of the steps to take if you are about to embark on a website localization project.

How to translate your website. An overview of the steps to take if you are about to embark on a website localization project. How to translate your website An overview of the steps to take if you are about to embark on a website localization project. Getting Started Translating websites can be an expensive and complex process.

More information

Salesforce Classic Guide for iphone

Salesforce Classic Guide for iphone Salesforce Classic Guide for iphone Version 37.0, Summer 16 @salesforcedocs Last updated: July 12, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

B.1 Database Design and Definition

B.1 Database Design and Definition Appendix B Database Design B.1 Database Design and Definition Throughout the SQL chapter we connected to and queried the IMDB database. This database was set up by IMDB and available for us to use. But

More information

Comparison of Open Source RDBMS

Comparison of Open Source RDBMS Comparison of Open Source RDBMS DRAFT WORK IN PROGRESS FEEDBACK REQUIRED Please send feedback and comments to s.hetze@linux-ag.de Selection of the Candidates As a first approach to find out which database

More information

Table of Contents. Introduction: 2. Settings: 6. Archive Email: 9. Search Email: 12. Browse Email: 16. Schedule Archiving: 18

Table of Contents. Introduction: 2. Settings: 6. Archive Email: 9. Search Email: 12. Browse Email: 16. Schedule Archiving: 18 MailSteward Manual Page 1 Table of Contents Introduction: 2 Settings: 6 Archive Email: 9 Search Email: 12 Browse Email: 16 Schedule Archiving: 18 Add, Search, & View Tags: 20 Set Rules for Tagging or Excluding:

More information

not at all a manual simply a quick how-to-do guide

not at all a manual simply a quick how-to-do guide not at all a manual simply a quick how-to-do guide As a general rule, the GUI implemented by spatialite-gis is closely related to the one implemented by the companion app spatialite-gui So, if you are

More information

Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences. Mike Dempsey

Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences. Mike Dempsey Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences by Mike Dempsey Overview SQL Assistant 13.0 is an entirely new application that has been re-designed from the ground up. It has been

More information

Table Of Contents. iii

Table Of Contents. iii PASSOLO Handbook Table Of Contents General... 1 Content Overview... 1 Typographic Conventions... 2 First Steps... 3 First steps... 3 The Welcome dialog... 3 User login... 4 PASSOLO Projects... 5 Overview...

More information

USING MICROSOFT WORD 2008(MAC) FOR APA TASKS

USING MICROSOFT WORD 2008(MAC) FOR APA TASKS USING MICROSOFT WORD 2008(MAC) FOR APA TASKS MS WORD 2008(MAC), GENERAL TIPS Backspace and Delete The keyboard has two delete keys: Backspace and Delete. What s the difference? The Backspace key deletes

More information

New Features in MySQL 5.0, 5.1, and Beyond

New Features in MySQL 5.0, 5.1, and Beyond New Features in MySQL 5.0, 5.1, and Beyond Jim Winstead jimw@mysql.com Southern California Linux Expo February 2006 MySQL AB 5.0: GA on 19 October 2005 Expanded SQL standard support: Stored procedures

More information

Ontrack PowerControls User Guide Version 8.0

Ontrack PowerControls User Guide Version 8.0 ONTRACK POWERCONTROLS Ontrack PowerControls User Guide Version 8.0 Instructions for operating Ontrack PowerControls in Microsoft SQL Server Environments NOVEMBER 2014 NOTICE TO USERS Ontrack PowerControls

More information

The future of International SEO. The future of Search Engine Optimization (SEO) for International Business

The future of International SEO. The future of Search Engine Optimization (SEO) for International Business The future of International SEO The future of Search Engine Optimization (SEO) for International Business Whitepaper The World Wide Web is now allowing special characters in URLs which means crawlers now

More information

sqlite driver manual

sqlite driver manual sqlite driver manual A libdbi driver using the SQLite embedded database engine Markus Hoenicka mhoenicka@users.sourceforge.net sqlite driver manual: A libdbi driver using the SQLite embedded database engine

More information

ELFRING FONTS UPC BAR CODES

ELFRING FONTS UPC BAR CODES ELFRING FONTS UPC BAR CODES This package includes five UPC-A and five UPC-E bar code fonts in both TrueType and PostScript formats, a Windows utility, BarUPC, which helps you make bar codes, and Visual

More information

A list of data types appears at the bottom of this document. String datetimestamp = new java.sql.timestamp(system.currenttimemillis()).

A list of data types appears at the bottom of this document. String datetimestamp = new java.sql.timestamp(system.currenttimemillis()). Data Types Introduction A data type is category of data in computer programming. There are many types so are clustered into four broad categories (numeric, alphanumeric (characters and strings), dates,

More information

Connectivity Pack for Microsoft Guide

Connectivity Pack for Microsoft Guide HP Vertica Analytic Database Software Version: 7.0.x Document Release Date: 2/20/2015 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty statements

More information

Introduction to Unicode. By: Atif Gulzar Center for Research in Urdu Language Processing

Introduction to Unicode. By: Atif Gulzar Center for Research in Urdu Language Processing Introduction to Unicode By: Atif Gulzar Center for Research in Urdu Language Processing Introduction to Unicode Unicode Why Unicode? What is Unicode? Unicode Architecture Why Unicode? Pre-Unicode Standards

More information

NØGSG DMR Contact Manager

NØGSG DMR Contact Manager NØGSG DMR Contact Manager Radio Configuration Management Software for Connect Systems CS700 and CS701 DMR Transceivers End-User Documentation Version 1.24 2015-2016 Tom A. Wheeler tom.n0gsg@gmail.com Terms

More information

Apache Cassandra Query Language (CQL)

Apache Cassandra Query Language (CQL) REFERENCE GUIDE - P.1 ALTER KEYSPACE ALTER TABLE ALTER TYPE ALTER USER ALTER ( KEYSPACE SCHEMA ) keyspace_name WITH REPLICATION = map ( WITH DURABLE_WRITES = ( true false )) AND ( DURABLE_WRITES = ( true

More information

EMBL-EBI. Database Replication - Distribution

EMBL-EBI. Database Replication - Distribution Database Replication - Distribution Relational public databases EBI s mission to provide freely accessible information on the public domain Data formats and technologies, should not contradict to this

More information

Binary Representation. Number Systems. Base 10, Base 2, Base 16. Positional Notation. Conversion of Any Base to Decimal.

Binary Representation. Number Systems. Base 10, Base 2, Base 16. Positional Notation. Conversion of Any Base to Decimal. Binary Representation The basis of all digital data is binary representation. Binary - means two 1, 0 True, False Hot, Cold On, Off We must be able to handle more than just values for real world problems

More information

A Brief Introduction to MySQL

A Brief Introduction to MySQL A Brief Introduction to MySQL by Derek Schuurman Introduction to Databases A database is a structured collection of logically related data. One common type of database is the relational database, a term

More information

Discovering SQL. Wiley Publishing, Inc. A HANDS-ON GUIDE FOR BEGINNERS. Alex Kriegel WILEY

Discovering SQL. Wiley Publishing, Inc. A HANDS-ON GUIDE FOR BEGINNERS. Alex Kriegel WILEY Discovering SQL A HANDS-ON GUIDE FOR BEGINNERS Alex Kriegel WILEY Wiley Publishing, Inc. INTRODUCTION xxv CHAPTER 1: DROWNING IN DATA, DYING OF THIRST FOR KNOWLEDGE 1 Data Deluge and Informational Overload

More information

Japanese Character Printers EPL2 Programming Manual Addendum

Japanese Character Printers EPL2 Programming Manual Addendum Japanese Character Printers EPL2 Programming Manual Addendum This addendum contains information unique to Zebra Technologies Japanese character bar code printers. The Japanese configuration printers support

More information

How to be a CSI (encoding Crime Scene Investigator)

How to be a CSI (encoding Crime Scene Investigator) Objectives for Crime Scene Investigation How to be a CSI (encoding Crime Scene Investigator) ex exin Internationalization Architect Yahoo Inc. Have some fun Prevent death by bullet points Introduce strategies

More information

Bangla Localization of OpenOffice.org. Asif Iqbal Sarkar Research Programmer BRAC University Bangladesh

Bangla Localization of OpenOffice.org. Asif Iqbal Sarkar Research Programmer BRAC University Bangladesh Bangla Localization of OpenOffice.org Asif Iqbal Sarkar Research Programmer BRAC University Bangladesh Localization L10n is the process of adapting the text and applications of a product or service to

More information

National Language (Tamil) Support in Oracle An Oracle White paper / November 2004

National Language (Tamil) Support in Oracle An Oracle White paper / November 2004 National Language (Tamil) Support in Oracle An Oracle White paper / November 2004 Vasundhara V* & Nagarajan M & * vasundhara.venkatasubramanian@oracle.com; & Nagarajan.muthukrishnan@oracle.com) Oracle

More information

MS SQL Performance (Tuning) Best Practices:

MS SQL Performance (Tuning) Best Practices: MS SQL Performance (Tuning) Best Practices: 1. Don t share the SQL server hardware with other services If other workloads are running on the same server where SQL Server is running, memory and other hardware

More information

D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:

D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to: D61830GC30 for Developers Summary Duration Vendor Audience 5 Days Oracle Database Administrators, Developers, Web Administrators Level Technology Professional Oracle 5.6 Delivery Method Instructor-led

More information

XML. CIS-3152, Spring 2013 Peter C. Chapin

XML. CIS-3152, Spring 2013 Peter C. Chapin XML CIS-3152, Spring 2013 Peter C. Chapin Markup Languages Plain text documents with special commands PRO Plays well with version control and other program development tools. Easy to manipulate with scripts

More information

Mailsteward Pro Table of Contents

Mailsteward Pro Table of Contents MailSteward Pro Manual Page 1 Mailsteward Pro Table of Contents Introduction: 2 Installing MySQL : 6 Connect to MySQL Server: 8 Meeting Federal Legal Requirements: 11 Settings: 12 Archive Email: 15 Search

More information

Abstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices.

Abstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices. MySQL for Excel Abstract This is the MySQL for Excel Reference Manual. It documents MySQL for Excel 1.3 through 1.3.6. Much of the documentation also applies to the previous 1.2 series. For notes detailing

More information

OmniDB - User s Guide

OmniDB - User s Guide OmniDB - User s Guide Rafael T. Castro, Luis Felipe T. Castro and William Ivanski 2016 Rafael T. Castro, Luis Felipe T. Castro and William Ivanski Contents 1. Introduction...........................................

More information

An Email Newsletter Using ASP Smart Mailer and Advanced HTML Editor

An Email Newsletter Using ASP Smart Mailer and Advanced HTML Editor An Email Newsletter Using ASP Smart Mailer and Advanced HTML Editor This tutorial is going to take you through creating a mailing list application to send out a newsletter for your site. We'll be using

More information

Efficient Pagination Using MySQL

Efficient Pagination Using MySQL Efficient Pagination Using MySQL Surat Singh Bhati (surat@yahoo-inc.com) Rick James (rjames@yahoo-inc.com) Yahoo Inc Percona Performance Conference 2009 Outline 1. Overview Common pagination UI pattern

More information

Open Repository, Open Source

Open Repository, Open Source Open Repository, Open Source Where we were, What we've learnt, And what it means to you 3rd July 2007 Open Repository, Open Source 1 The Hardware 2x DL360 G2 1xMSA 1500cs 1xMSA 1000 1xMSA 20 2 TBs capacity

More information

Chapter 6: Physical Database Design and Performance. Database Development Process. Physical Design Process. Physical Database Design

Chapter 6: Physical Database Design and Performance. Database Development Process. Physical Design Process. Physical Database Design Chapter 6: Physical Database Design and Performance Modern Database Management 6 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden Robert C. Nickerson ISYS 464 Spring 2003 Topic 23 Database

More information

MySQL Command Syntax

MySQL Command Syntax Get It Done With MySQL 5&6, Chapter 6. Copyright Peter Brawley and Arthur Fuller 2015. All rights reserved. TOC Previous Next MySQL Command Syntax Structured Query Language MySQL and SQL MySQL Identifiers

More information

Centricity Enterprise Web 3.0 DICOM Conformance Memo DOC0094970

Centricity Enterprise Web 3.0 DICOM Conformance Memo DOC0094970 DOC0094970 CONTENTS 1 Introduction... 3 1.1 Scope and Purpose... 3 1.2 Intended Audience... 3 1.3 Scope and Field of Application... 3 1.4 References... 4 1.5 Definitions... 4 1.6 Symbols and Abbreviations...

More information

Today s topics. Digital Computers. More on binary. Binary Digits (Bits)

Today s topics. Digital Computers. More on binary. Binary Digits (Bits) Today s topics! Binary Numbers! Brookshear.-.! Slides from Prof. Marti Hearst of UC Berkeley SIMS! Upcoming! Networks Interactive Introduction to Graph Theory http://www.utm.edu/cgi-bin/caldwell/tutor/departments/math/graph/intro

More information