0
我需要转义所有特殊字符并替换国家字符并获取表格名称的“纯文本”。C++ - 转义特殊字符
string getTableName(string name)
我的字符串可以为“šárka65_%&”。我想获取字符串我可以在我的数据库中使用作为表名。
我需要转义所有特殊字符并替换国家字符并获取表格名称的“纯文本”。C++ - 转义特殊字符
string getTableName(string name)
我的字符串可以为“šárka65_%&”。我想获取字符串我可以在我的数据库中使用作为表名。
哪个DBMS?
您可以简单地选择将名称放在适当的标记中。
我有一种感觉,这是不是你想要的...
什么代码集的字符串是吗?它到达我的浏览器时似乎是UTF-8。你需要能够明确地反转映射吗?这很难。
您可以使用许多方案来映射信息:
一个头脑简单的一个是简单地为十六进制编码的一切,用一个标记(X),以防止领先的数字:
XC5A1C3A1726B6136355F25262E
一个稍微不简单的思想是对任何不是ASCII字母数字或下划线的东西进行十六进制编码。
XC5A1C3A1rka65_25262E
,或作为意见建议,可以制定一个映射表重音拉丁文字 - 事实上,适当地初始化的映射表,将是最快的方法。输入是源字符串中的字符;输出是所需的映射字符或字符。如果使用8位字符集,则完全可以管理。如果你使用完整的Unicode,那么管理起来就不那么简单了(特别是,你如何将汉字音节映射到ASCII?)。
或者......
...什么字符是特殊到你的数据库?标准SQL?标准的任何变化或扩展?您是否正在使用现有的数据库访问库,以及是否使用了哪一个? – dmckee 2010-09-14 14:00:32
哪一个是你的数据库,你的字符串是什么编码,你如何定义**纯文本**?你能否提供一些更多的细节。 – 2010-09-14 14:02:19
Unicode是20年前发明的,可以解决这个问题。您的操作系统是Unicode,您的dbase引擎是Unicode,dbase中的数据可能是Unicode。唯一的问题是你的程序不是。使用wstring。 – 2010-09-14 14:05:17