草庐IT

php - SQL Server 2008 数据库 + PHP 中的 UTF-8

我想用PHP在MSSQL2008数据库中存储数据。我遇到了像äöüß这样的字母问题,它们在数据库中显示不正确,当我在网站上显示时。当我使用PHP对输入数据进行utf8_encode并使用utf8_decode对输出数据进行utf8_decode时,它​​会起作用。还有其他更简单的方法可以解决这个问题吗? 最佳答案 我已经解决了这个问题,问题是PHP的mssql驱动程序坏了(找不到bugs.php.net的链接,但它在那里)并且在涉及到nchar和nvarchar字段a时失败了utf8.您需要稍微转换数据和查询:SELECTsome_

php - UTF8 到 latin1_swedish_ci

有很多关于latin1_swedisch_ci到utf8转换的主题。但反过来呢?我已经处理这个问题很长时间了,到目前为止我还没有找到解决方案。因为我不知道还有什么正在访问这个数据库,所以我不想更改表的字符编码。我在表中有一列,其格式为latin1_swedisch_ci。现在我必须在php中编写查询。该数据库包含德语和法语名称,这意味着我有ö、ä、ô等字符。我怎样才能做到这一点?例如,如果我想查询名称“Bürki”,那么我必须写类似$name='Bürki'的内容。是否有适当的方法将其转换为latin1_swedisch_ci而无需对这些特殊字符使用字符串替换?

php - 如何在 PHP 中正确处理 UTF-8?

我试图让我们的聊天系统支持UTF-8,但我失败了。如果在客户端,我发送以下消息,通过encodeURIComponent传递:苏奥并将其放在PHP端:error_log(print_r(array($_POST['message'],urldecode($_POST['message']),rawurldecode($_POST['message']),utf8_decode($_POST['message']),utf8_decode(urldecode($_POST['message'])),utf8_decode(rawurldecode($_POST['message'])))

PHP array_key_exists 和 UTF 8

我有一个数据库,其中编码为UTF-8用于多语言目的。我认为我的应用程序中的所有内容都是UTF-8。尽管我对array_key_exists函数有疑问。首先查询数据库从表中选择名称,值然后我用结果填充HashMap:$hashmap[$row['name']]=$row['value']但是当数据库中的名称包含重音符如'é'时,以下返回false:$this->db->select('name');$this->db->select('value');$this->db->from('table');$q=$this->db->get();$res=$q->result_array();

PHP 显示汉字 : SET NAMES 'utf8' not working

我正在尝试使用我拥有的数据库,但我无法在其中显示中文字符。该数据库实际上首先是一个MSAccess文件,我用程序将其转换为mysql。无论如何,很多行中都有汉字,我无法让它们在任何浏览器中正确显示。否则我可以很好地显示中文字符,如果我使用phpmyadmin查看表格,我也可以看到它们。我四处寻找这个问题的解决方案,在我看来,通常的解决方法是执行“SETNAMES'utf8'”查询,但这只会将显示的字符从问号更改为其他奇怪的符号。如果我在phpmyadmin中查看数据库和所有表的排序规则是utf8_general_ci。有什么想法吗? 最佳答案

php - 检测字符串是否包含至少 2 个字母(任何语言)和至少 2 个单词

我想制作一个函数来检测/验证一个字符串至少有2个单词,并且每个单词至少有2个字母(除了这两个字母,它可以包含任何其他字符{withoutnumbers},但我不关心哪个和多少)。现在,我不确定我是否应该为此使用正则表达式或者我可以用其他方式做到这一点。如果我需要为它制作正则表达式,我也不知道该怎么做,因为我需要检查所有可用的字母。这是我现在得到的正则表达式[A-Za-z]{2,}(\s[A-Za-z]{2,})验证2个单词和2个字母至少在每个单词中。编辑:重新考虑后,我决定支持大多数语言,因为kr-jp-cn语言与其他语言的工作方式不同。我的主要规则不会让kr-jp-cn字母算作字母,

php - 在 PHP 中将 utf-8 字符串转换为 UTF16 实体

我有这个代码$message值包含一些希腊词。我想要这样的东西“0393039903910020039D039100200394039F03A5039C0395002003A4039900200398039100200394039F03A5039C0395”但在浏览器中得到一些带有黑色菱形标记的问题我尝试按照这些说明(StackOverflowquestion)但没有成功。我还尝试将文件的编码从UTF-8更改为没有BOM的UTF-8,但还是失败了。在搜索时我发现了这个神奇的网页UnicodeCodeConverter这样我就可以测试我是否获得了正确的实体。

php 5.3 CLI 垃圾字符

我遇到的问题是,每当我从命令行运行一个简单的php脚本时,它前面都会显示一些垃圾字符。我在Windows7的wamp服务器上使用php5.3.9。这是我的脚本代码这是我在cli中得到的∩╗┐Hi如果其他人遇到过同样的问题并知道解决方案,请告诉我。谢谢 最佳答案 这是UTF-8BOM。在您的编辑器中,将文件另存为“不带BOM的UTF-8”(查找该设置,它一定在某处。如果找不到,请更改您的编辑器)。 关于php5.3CLI垃圾字符,我们在StackOverflow上找到一个类似的问题:

php - 如何设置simplexml_load_string PHP函数的输出编码

我正在用simplexml_load_string解析CP1250编码的字符串.所以,我在以开头的字符串中声明它.不幸的是,所有节点都是UTF8编码的simplexml_load_string输出。有没有办法,如何指定输出编码,或者我是否必须在使用输出时使用iconv? 最佳答案 你的问题对我来说不是很清楚,所以我尝试以我理解的方式回答它,很可能那时已经给出了答案。如果您加载一个CP1250/Windows-1250编码字符串,并且该字符串在XML声明中包含此编码信息,通常默认情况下simplexml已将其保留在输出中。所以通常你不

php - 检测 PHP 中字符串的字符集(UTF-8 或 Windows-1256)

我正在处理基于“SimpleHTMLDOM”的脚本,我想在获取URL的内部文本以使用iconv()将其转换为“UTF-8”后检测字符串的字符集。我尝试了很多东西,但没有一个适用于Windows-1256。我尝试过的:-mb_detect_encoding($content)将Windows-1256检测为UTF-8mb_detect_encoding($content,"windows-1256")给出错误Illegalargumentfunctionis_utf8($string){returnpreg_match('%^(?:[\x09\x0A\x0D\x20-\x7E]#ASCI