我收到了这个充满法语人名和数据的数据库,这意味着使用é,è,ö,û等字符.大约3000个条目.
显然,内部数据有时使用utf8_encode()编码,有时不编码.这导致混乱的输出:在某些地方,角色显示正常,而在其他地方,他们没有.
起初我试图在UI中找到出现这些问题的每个地方,并在必要时使用utf8_decode(),但这实际上并不是一个切实可行的解决方案.
我做了一些测试,没有理由首先使用utf8_encode,所以我宁愿删除所有这些,只是在UTF8中工作 - 在浏览器,中间件和数据库级别.所以我需要清理数据库,通过清理后的版本转换所有错误编码的数据.
问题:是否可以在php中创建一个函数来检查utf8字符串是否正确编码(没有utf8_encode)或不是(使用utf8_encode),如果是,则将其转换回原始状态?
换句话说:我想知道如何检测utf8内容已经被utf8_encode()转换为utf8内容,而不是utf8_encode()d.
**更新:示例**
这是一个很好的例子:你带一个充满特殊字符的字符串并获取该字符串的副本和utf8_encode()它.我正在梦想的函数接受两个字符串,使第一个字符串保持不变,第二个字符串现在与字符串一相同.
我试过这个:
$loc_fr = setlocale(LC_ALL, 'fr_BE.UTF8','fr_BE@euro', 'fr_BE', 'fr', 'fra', 'fr_FR');
$str1= "éèöûêïà ";
$str2 = utf8_encode($str1);
function convert_charset($str) {
$charset= mb_detect_encoding($str);
if( $charset=="UTF-8" ) {
return utf8_decode($str);
}
else {
return $str;
}
}
function correctString($str) {
echo "\nbefore: $str";
$str= convert_charset($str);
echo "\nafter: $str";
}
correctString($str1);
echo('<hr/>'."\n");
correctString($str2);
Run Code Online (Sandbox Code Playgroud)
这给了我:
before: éèöûêïà after: ???????
before: éèöûêïà after: éèöûêïà
Run Code Online (Sandbox Code Playgroud)
谢谢,
亚历克斯
我在 CodeGear Builder 2009 中使用 Win32 C++ 目标是 Windows XP Embedded。
我找到了 PROCESS_MEMORY_COUNTERS_EX 结构,并且创建了一个简单的函数来返回进程的内存消耗
SIZE_T TForm1::ProcessPrivatBytes( DWORD processID )
{
SIZE_T lRetval = 0;
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS_EX pmc;
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL == hProcess)
{
lRetval = 1;
}
else
{
if ( GetProcessMemoryInfo( hProcess, (PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc)) )
{
lRetval = pmc.WorkingSetSize;
lRetval = pmc.PrivateUsage;
}
CloseHandle( hProcess );
}
return lRetval;
}
//---------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我必须使用 lRetval = pmc.WorkingSetSize; 或lRetval = pmc.PrivateUsage;
privateUsage 是我在 …
我参加了这次面试,获得了一个软件开发人员的职位,他们给了我一些角落案例代码情况的测试,通常有4个选项可供选择.
其中一个问题在课堂范围之外宣布了一个枚举,我及时检查了"不编译"的答案并继续处理其他问题.它是这样的:
enum Colors {BLUE,RED,GREEN}
class Test {
//other code, not really important with my question
}
Run Code Online (Sandbox Code Playgroud)
这段代码实际编译.
除了这样的采访(可能或)可能没有用,以确定一个人是否是一个好的开发人员,让我担心的是:为什么我会宣布这样的枚举?为什么我只能用enum做这个?我做了一些测试,发现它在课堂内是可见的,但不是其他课程.
旁注:我得分很差:P.我在理论上获得了最大值,但在角落情况代码情况下接近最低可能性.我认为我不会得到这份工作.
我正在寻找一种方法来检查2 个排列(由列表表示)是否具有相同的奇偶校验.请注意,如果它们是偶数或奇数奇偶校验,我就不感兴趣,只是相等.
我是Python新手,我的天真解决方案在下面作为回复给出.我期待Python专家向我展示一些很酷的技巧,以便在更小,更优雅的Python代码中实现相同的功能.
我试图通过Spring 在服务器模式下启动H2数据库(我希望它在不同的进程中运行).目前我正在使用java Runnable.exec启动h2数据库(使用命令:" java -cp h2.jar org.h2.tools.Server ")
我知道有一种方法可以通过Spring实现.我尝试将以下内容添加到spring配置中,但它不起作用(它没有启动H2数据库):
<bean id="org.h2.tools.Server" class="org.h2.tools.Server"
factory-method="createTcpServer" init-method="start" destroy-method="stop">
<constructor-arg value="-tcp,-tcpAllowOthers,true,-tcpPort,8043" />
</bean>
<bean id="org.h2.tools.Server-WebServer" class="org.h2.tools.Server"
factory-method="createWebServer" init-method="start">
<constructor-arg value="-web,-webAllowOthers,true,-webPort,8082" />
</bean>
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助/想法
我正在使用notepad ++进行PHP编码.
使用ANSI中的Encode格式设置没有任何问题.
但是当我在UTF-8中使用Encode时,我在顶部有一个奇怪的字符或者没有显示任何内容.
Q1.我应该使用ANSI吗?Q2.当我使用UTF-8时,为什么无法显示任何内容
我的标题代码如下.
<html>
<head>
<title>Hello, PHPlot!</title>
</head>
Run Code Online (Sandbox Code Playgroud)
那是因为我在标题中没有使用UTF-8吗?
我需要转换表单的表达式:
return *;
Run Code Online (Sandbox Code Playgroud)
成:
return filter(*);
Run Code Online (Sandbox Code Playgroud)
用通配符表达它似乎很简单,但是,在visual studio的搜索和替换dailog中,没有办法将第一个星号与第二个星号相关联.我认为正则表达式可以很容易地做到这一点,但我对正则表达式知之甚少.
如何在正则表达式中表达此标准?
我需要检查用户提交的HTML是否包含任何JavaScript.我正在使用PHP进行验证.
我正在尝试使用Pydev 1.5调试我的应用程序
我几乎完成了文档中提到的所有启动调试器的操作.
我尝试启动调试时遇到此错误:
pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower)
pydev debugger: starting
Traceback (most recent call last):
File "C:\Documents and Settings\mkallat\Desktop\eclipse\plugins\org.python.pydev.debug_1.5.0.1251989166\pysrc\pydevd.py", line 953, in <module>
debugger.run(setup['file'], None, None)
File "C:\Documents and Settings\mkallat\Desktop\eclipse\plugins\org.python.pydev.debug_1.5.0.1251989166\pysrc\pydevd.py", line 780, in run
execfile(file, globals, locals) #execute the script
File "Z:\dev\hfholidays\urls.py", line 1, in <module>
from django.conf.urls.defaults import *
ImportError: No module named django.conf.urls.defaults
Run Code Online (Sandbox Code Playgroud)
请告诉我什么是最好的解决方案.或者我错过了什么?
提前致谢.