小编Nun*_*uno的帖子

MySQL - 将UTF8表上的latin1字符转换为UTF8

直到今天我才意识到我在PHP脚本中遗漏了这个:

mysql_set_charset('utf8');
Run Code Online (Sandbox Code Playgroud)

我的所有表都是InnoDB,排序规则"utf8_unicode_ci",我所有的VARCHAR列都是"utf8_unicode_ci".我有mb_internal_encoding('UTF-8');我的PHP脚本,我的所有PHP文件都编码为UTF-8.

所以,直到现在,每次我用变音符号"插入"某些东西,例如:

mysql_query('INSERT INTO `table` SET `name`="Jáuò Iñe"');
Run Code Online (Sandbox Code Playgroud)

在这种情况下,'name'内容将是:Jáuò Iñe.

由于我在PHP和MySQL之间修复了字符集,因此新的INSERT现在可以正确存储.但是,我想修复目前"混乱"的所有旧行.我已经尝试了很多东西,但它总是打破第一个"非法"角色的字符串.这是我目前的代码:

$m = mysql_real_escape_string('¿<?php echo "¬<b>\'PHP &aacute; (á)??riî? </b>"; ?> ?-?i abcdd;//;ñç´????????ç?â????????????ñ ;');
mysql_set_charset('utf8');
mysql_query('INSERT INTO `table` SET `name`="'.$m.'"');
mysql_set_charset('latin1');
mysql_query('INSERT INTO `table` SET `name`="'.$m.'"');
mysql_set_charset('utf8');

$result = mysql_iquery('SELECT * FROM `table`');
while ($row = mysql_fetch_assoc($result)) {
    $message = $row['name'];
    $message = mb_convert_encoding($message, 'ISO-8859-15', 'UTF-8');
    //$message = iconv("UTF-8", "ISO-8859-1//IGNORE", $message);
    mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string($message).'" WHERE `a1`="'.$row['a1'].'"');
}
Run Code Online (Sandbox Code Playgroud)

除了在字符"ă"之后字符串被截断之外,它还使用期望的字符"UPDATE".我的意思是,字符串中不包含该字符和后续字符.

此外,使用"iconv()"(在代码上注释)进行测试也是如此,即使使用// IGNORE和// TRANSLIT也是如此

我还测试了ISO-8859-1和ISO-8859-15之间的几个字符集.

我真的需要帮助!谢谢.

php mysql iso-8859-1

43
推荐指数
2
解决办法
6万
查看次数

在Visual Studio上添加文件作为链接 - 调试与发布

每次我必须将一个文件作为链接链接到一个ASP.NET项目时,总会有一些我忘记做的事情,因为Visual Studio太过错误并且很烦人.它有一个错误/限制因此它不会将文件复制到Debug输出文件夹中,我们必须更改文件的属性,以便将其复制到Publish输出文件夹中.

经过大量研究后,我通过艰难的方式学到了这一点,并创建了一个AfterBuild目标,以帮助简化此过程.但是,添加文件时仍有一些手动工作要做.

这是我维护的项目的示例.假设我们要在ASP.NET项目的"utilities"文件夹中添加文件YIUCARD.

1)右键单击Visual Studio上的"utilities"文件夹,然后选择"添加 - >现有项".

步骤1

2)选择要添加的文件,单击它(不要双击).

第2步

3)单击"添加"按钮旁边的箭头,然后选择"添加为链接".

第3步

目前,这将无所作为.该文件不会被复制到任何文件夹(调试和发布).它刚刚添加到项目中.

4)在文件中单击鼠标右键,然后打开"属性".

第4步

5)更改:"构建操作"到"内容""复制到输出目录"到"始终复制"

第5步

此时,文件将被复制到Publish输出文件夹(我们在发布时定义的任何位置).但是,当我们在本地调试(F5)时,它将无法工作,因为该文件未复制到代码库上的本地"utilities"文件夹中.

6)选择"全部保存",在Visual Studio上保存更改.这样就可以保存".csproj"文件,因为我们对其进行了更改,现在我们将手动编辑它.

第6步

7)在Notepad ++中打开".csproj".

第7步

8)将文件添加到"BeforeBuild"事件(这是我的):

第8步

 <Target Name="BeforeBuild">
    <ItemGroup>
      <UtilitiesFiles Include="..\path\to\file\REDOPXX.NEW" />
      <UtilitiesFiles Include="..\path\to\file\REDFMTST" />
      <UtilitiesFiles Include="..\path\to\file\JOBCARD" />
      <UtilitiesFiles Include="..\path\to\file\YIUCARD" />
    </ItemGroup>
    <Copy SourceFiles="@(UtilitiesFiles)" DestinationFolder=".\utilities" SkipUnchangedFiles="true" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

9)我有一个Release模式的"AfterBuild"事件,它会自动为我发布项目,以便文件直接进入我想要的输出文件夹:

  <Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
    <PropertyGroup>
      <OutputDir>..\path\to\publish\MyProject</OutputDir>
    </PropertyGroup>
    <Message Importance="High" Text="Output DIR: $(OutputDir)" />
    <RemoveDir Directories="$(OutputDir)" ContinueOnError="true" />
    <MSBuild Projects="MyProject.csproj" Properties="Configuration=$(Configuration);WebProjectOutputDir=$(OutputDir);OutDir=$(OutputDir)bin\" Targets="ResolveReferences;_CopyWebApplication" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

10)将文件保存在Notepad ++中并在Visual Studio上重新加载.

第10步

构建项目时,该文件将被复制到Debug和Release/Publish文件夹中!

但是,我想知道是否有更简单/直观的方法来做到这一点.

您可以说这可以通过将Debug输出文件夹更改为Release/Publish文件夹来修复,以便在我第一次发布后文件就在那里.但是,请注意,这也有一个错误.如果我使用"bin"以外的输出文件夹,aspx文件会抱怨他们找不到程序集.即使我将"复制到输出目录"设置为"始终复制",它也会抱怨无法找到"Global.asax.cs".

请看这些相关问题:

分析器错误消息:无法加载类型'TestMvcApplication.MvcApplication'

"无法加载类型[Namespace] .Global"让我感到悲伤

这是在较新版本的Visual Studio中修复/改进的吗?

c# asp.net visual-studio

39
推荐指数
2
解决办法
3万
查看次数

在所有PHP进程之间共享变量/内存

是否可以在所有PHP进程之间共享变量和数组而不重复它们

使用memcached,我认为PHP重复使用的内存:
$array = $memcache->get('array');
$ array将包含memcached的副本.

所以我的想法是,可能有一个已定义的静态变量,并在所有进程之间共享.

php shared-memory

19
推荐指数
4
解决办法
2万
查看次数

将更改应用于已安装的PWA上的Web App Manifest

如果我想对我的Progressive Web App进行更改,例如对应用程序名称稍作更改,或更新徽标,是否可以强制更新我所有用户的已安装应用程序?

我尝试在清单网址中添加"?v = 2",

<link rel="manifest" href="/manifest.json?v=2" />
Run Code Online (Sandbox Code Playgroud)

并且还强制更新服务工作者.

但是,它似乎不会在已安装的应用程序上应用新的更改.
我在Android上的Google Chrome上试过这个.

html5 service-worker progressive-web-apps manifest.json

8
推荐指数
1
解决办法
3239
查看次数

创建一组原子列表

假设我有一个像这样的原子数组:

['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

(长度可以是任何)

我想创建一个可以用它们创建的集合列表:

[  
    ['a'], ['b'], ['c'],  
    ['a', 'b'], ['a', 'c'], ['b', 'c'],  
    ['a', 'b', 'c']  
]  
Run Code Online (Sandbox Code Playgroud)

是否可以在python中轻松完成?

也许这很容易做到,但我自己也没有.
谢谢.

python set

7
推荐指数
1
解决办法
188
查看次数

Qt程序部署到多平台,怎么样?

我是Qt编程的新手,我想开发一个我希望在Windows,Linux(ubuntu)和Mac上运行的程序.

我听说Qt支持mutli-platform应用程序开发,

但我的问题是,

我部署或编译后,任何Qt库是否需要在Ubuntu中运行这些应用程序?

c c++ qt cross-platform qt-creator

6
推荐指数
1
解决办法
4641
查看次数

适用于大型站点的XML与MySQL

对于一个非常大的网站,例如社交网络(比如Facebook),您会建议哪种方法用于存储用户帐户?

1)用户目录中每种功能的单个XML文件:basicinfo.xml,comments.xml,photos.xml,...

2)MySQL,虽然不知道如何组织这个.每个功能可能分开的表格?例如,注释的表,其中列是id,from,message,time

我知道XML不是为存储而设计的,PHP(这是我使用的语言)必须读取整个XML文件并在使用之前存储在内存中.

但是,这就是我更喜欢XML的原因(但我可能错了,如果你不同意,请告诉我):

1)如果我以这种方式组织用户帐户的路径

用户ID 2342:
/users/00/00/00/00/00/00/00/23/42/

我认为通过文件路径查找用户的注释比在大型数据库中查找更快.
此外,如果每个功能在表格中分开,则每个用户配置文件将不止一次地搜索,以显示评论,照片,基本信息等.

2)我听说MySQL在写上时被全局锁定.这是真的?如果是,我宁愿锁定单个文件而不是一切.

3)MySQL是否在群集之间"共享"?我的意思是,如果1个磁盘已满,它会在另一个磁盘上"继续"吗?或者,作为程序员,我是否必须自己管理并在另一个磁盘上创建新数据库?(注意,我使用Linux)
通过使用XML文件大致相同,但是在磁盘之间拆分更容易,因为结构是按帐户ID划分的,而不是像在数据库中那样按功能拆分.

4)请注意,我没有在comments.xml上存储每个注释.我只是在每个XML标记中记下它们的属性,并且消息在分隔的文本文件commentid.txt中.一旦每个XML不应该太大,就不应该有内存/时间问题.

至于解析整个XML的问题,也许我应该考虑使用XMLReader/Writer而不是SimpleXML/DOM?或者,它会降低性能吗?

谢谢!

php xml mysql

6
推荐指数
2
解决办法
6624
查看次数

通过SQL删除特定备份文件

我一直在研究如何通过SQL查询删除特定的备份文件,但我只找到有关"删除早于日期的备份"的结果.那不是我想要的.我想保留旧备份,但我希望能够通过其ID删除特定备份.

我可以轻松地从msdb表中删除条目及其给定备份的恢复历史记录,但我希望能够通过SQL查询删除文件(我知道它们的完整路径,因为它存储在数据库中),这样他们就不会在磁盘中浪费空间.

过程"xp_delete_file"似乎不允许删除特定文件.

我假设如果有删除旧文件的过程,应该有一些方法来删除特定文件.请不要担心这里的安全.

sql-server backup

6
推荐指数
2
解决办法
2万
查看次数

在PHP中过滤所有类型的空格

我知道有很多类型的空间(em空间,空间,稀疏空间,不间断空间等),但是,我提到的所有这些都有HTML实体(至少,PHP的htmlentities()返回类似的东西&EMSP ;.

但是,那些没有HTML实体的空间呢?
示例:http://iorbix.com/1001-p-Nuno-Peralta
查看此帐户的昵称.它在前面有很多""(空格),对我们来说是可见的(这不会发生在 ).

我尝试使用正则表达式过滤,使用\ x转义,使用str_replace()过滤,以空格作为参数,根本没有运气!

您对如何过滤所有类型的空白有什么建议吗?

php whitespace

5
推荐指数
1
解决办法
5275
查看次数

“发件人:”中的有效字符显示电子邮件的名称

我正在使用 PEAR Mail 发送电子邮件,我发现如果“发件人:”字段类似于From: Drago? <email@example.com>,PEAR 会返回错误:

Validation failed for: Drago? <email@example.com>

但是,如果我删除?,PEAR 将返回 true 并发送电子邮件。

我试图在 Google 和 StackOverflow 上搜索有效字符,但似乎我在这里没有运气。有谁知道From 字段中显示名称的有效字符是什么?

另外,有没有办法“编码”这些字符以允许在该字段中使用?我使用PHP。

谢谢!
努诺

php email smtp

5
推荐指数
1
解决办法
3662
查看次数